【问题标题】:Custom HTTP verbs with Phoenix.Router使用 Phoenix.Router 自定义 HTTP 动词
【发布时间】:2015-09-26 21:51:58
【问题描述】:

如何使用 phoenix 框架在 elixir 应用程序中启用自定义 HTTP 动词?

我可以看到getpost 等宏是如何在https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/router.ex#L320-L334 中创建的。但是,可能是因为使用了嵌套的宏架构,我无法使用这样的路由器定义来实现自定义 HTTP 动词,例如 bla

Phoenix.Router.Scope.route Ical.Router, :match, :bla, "/bla", PageController, :bla, []

虽然不会导致编译器错误,但在执行 BLA /bla HTTP/1.1 请求时会产生 404。

在尝试使用 GET 模拟 GET 行为时它甚至不起作用

Phoenix.Router.Scope.route Ical.Router, :match, :get, "/bla", PageController, :bla, []

对此的任何提示将不胜感激!

【问题讨论】:

  • Phoenix.Router.Scope.route 没有记录,因此它是 Phoenix 网络框架私有的。请不要调用私有函数,Phoenix 可以随时更改,您的代码会中断。为什么需要自定义 HTTP 动词?这样做涉及许多取舍,因此不应轻易完成:programmers.stackexchange.com/questions/193821/…
  • 您好,何塞,感谢您的评论。自定义 HTTP 动词的意图确实不是发明一种新的通信协议,而是探索实现 WebDAV/CalDAV 协议的子集。据我了解,由于我的研究才刚刚开始,因此需要自定义 HTTP 动词。
  • 所以最好在 Phoenix 问题跟踪器中打开一个问题。我不认为我们现在支持他们。 :)

标签: elixir phoenix-framework


【解决方案1】:

好的,我找到了一种使用应用程序的配置文件来实现它的方法。

这个案例的简单实现和未来可以在这个拉取请求中看到:https://github.com/phoenixframework/phoenix/pull/1234

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多