问题描述
背景
我有一个简单的即插即用路由器,该路由器具有一些POST,PUT和GET端点。但是,每个端点都需要对请求的标头进行特定的验证。我不知道如何使用Plug来实现。 代码
我有一个非常通用的路由器,可以接收请求并将其重定向到控制器:
defmodule Api do
use Plug.Router
alias Api.Controllers.{Product,NotFound,Ping}
plug :match
plug Plug.Logger
plug :dispatch
get "/ping",do: Ping.process(conn)
put "/product",do: Product.process(conn)
match _,do: NotFound.process(conn)
end
问题
但是,缺少一个步骤。我需要/ products端点来验证标题。也就是说,标头应设置一些特定的字段,例如“ conten-type”标头,甚至是“香蕉”之类的自定义标头。
此验证不适用于所有端点。更糟糕的是,每个端点都将进行自己的验证,例如,对于“ / products”端点,具有“ bananas”标题可能很重要,但是“ / ping”端点并不在乎。
研究
我已经阅读了这篇文章:
但是,这适用于所有端点,并且不是特定的。
问题
- 使用Plug能否实现我想要的?如果可以,怎么办?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)