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
)工作,但我想弄清楚如何獲得它的功能工作。也許它會讓我更好地理解一些藥劑的細節,根據文檔它應該是可能的。