Elixir 使用Phoenix.Router自定义HTTP谓词
如何使用phoenix框架在elixir应用程序中启用自定义HTTP谓词 我可以看到如何在中创建宏Elixir 使用Phoenix.Router自定义HTTP谓词,elixir,phoenix-framework,Elixir,Phoenix Framework,如何使用phoenix框架在elixir应用程序中启用自定义HTTP谓词 我可以看到如何在中创建宏get,post等。然而,可能是由于使用了嵌套的宏体系结构,我无法使用如下路由器定义实现自定义HTTP谓词,例如bla: Phoenix.Router.Scope.route Ical.Router, :match, :bla, "/bla", PageController, :bla, [] 虽然不会导致编译器错误,但在执行BLA/BLA HTTP/1.1请求时会生成404 它甚至在尝试使用模拟
get
,post
等。然而,可能是由于使用了嵌套的宏体系结构,我无法使用如下路由器定义实现自定义HTTP谓词,例如bla
:
Phoenix.Router.Scope.route Ical.Router, :match, :bla, "/bla", PageController, :bla, []
虽然不会导致编译器错误,但在执行BLA/BLA HTTP/1.1
请求时会生成404
它甚至在尝试使用模拟GET行为时都不起作用
Phoenix.Router.Scope.route Ical.Router, :match, :get, "/bla", PageController, :bla, []
对此的任何提示都将不胜感激 好的,我找到了一种使用应用程序的配置文件实现这一点的方法
这个简单的实现和这个案例的未来可以在这个pull请求中看到:.
Phoenix.Router.Scope.route
没有文档记录,因此它是Phoenix webframework的私有。请不要调用私有函数,Phoenix可以随时更改,您的代码将被破坏。为什么需要自定义HTTP谓词?这样做涉及到许多权衡,因此不应轻率行事:你好,何塞,谢谢你的评论。定制HTTP谓词的目的实际上不是发明新的通信协议,而是探索实现WebDAV/CalDAV协议的子集。据我所知,由于我的研究才刚刚开始,因此需要自定义HTTP动词。因此,最好在Phoenix issues tracker中打开一个问题。我认为我们目前不支持他们。:)