Che*_*149 2 elixir phoenix-framework
我需要在我的web/router.ex文件中定义两个管道,如下所示:
pipeline :api do
plug :accepts, ["json"]
plug :fetch_session
plug MyApp.Plugs.ValidatePayload
end
pipeline :restricted_api do
plug :accepts, ["json"]
plug :fetch_session
plug MyApp.Plugs.ValidatePayload
plug MyApp.Plugs.EnsureAuthenticated
plug MyApp.Plugs.EnsureAuthorized
end
Run Code Online (Sandbox Code Playgroud)
您可以清楚地看到:api管道中的步骤在管道中重复:restricted_api.
有没有办法在:api管道中重用:restricted_api管道?
我正在考虑类似于继承的东西:
pipeline :api do
plug :accepts, ["json"]
plug :fetch_session
plug MyApp.Plugs.ValidatePayload
end
pipeline :restricted_api do
extend :api
plug MyApp.Plugs.EnsureAuthenticated
plug MyApp.Plugs.EnsureAuthorized
end
Run Code Online (Sandbox Code Playgroud)
mic*_*ala 11
该pipeline宏创建一个功能插件.因此,它可以像其他任何插头一样用于其他管道plug :pipeline.在提供的示例中:
pipeline :api do
plug :accepts, ["json"]
plug :fetch_session
plug MyApp.Plugs.ValidatePayload
end
pipeline :restricted_api do
plug :api
plug MyApp.Plugs.EnsureAuthenticated
plug MyApp.Plugs.EnsureAuthorized
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |