0
我正在尝试在Elixir中设置一个非常简单的基本HTTP API。我认为使用凤凰这种东西完全是过火,所以想用Plug来简单地做。我可以通过设置这样的基本路由器来实现:如何将Plug.Router连接到Plug功能
defmodule Example.Router do
use Plug.Router
plug Plug.Logger
plug :match
plug :dispatch
get "/" do
data = do_something_with_conn(conn)
send_resp(conn, 200, Poison.encode!(data))
end
match _, do: send_resp(conn, 404, "Not Found")
end
但是,我无法弄清楚如何将此路由器连接到另一个Plug功能。说,我有这个插件兼容功能:
defmodule RandomPlug do
import Plug.Conn
def random_plug(conn, opts) do
whatever(conn)
end
end
如何将它连接到路由器?我已经使用这个语法从docs尝试:
forward "/", to: RandomPlug.random_plug
和其他变化,但我不能得到它来编译和/或工作。例如上面的版本抱怨没有random_plug/0函数。
是的,我可以得到它与整个插件模块(带init
和call
)工作,但我想弄清楚如何获得它的功能工作。也许它会让我更好地理解一些药剂的细节,根据文档它应该是可能的。