我有两个模块:lib/endpoints/v1/base.ex 和 lib/endpoints/v2/base.ex。
lib/endpoints/v1/base.ex
defmodule Http.Endpoints.V1.Base do
require Logger
use Plug.Router
plug(:match)
plug(:dispatch)
plug(Plug.Logger)
plug(Plug.Parsers, parsers: [:json], json_decoder: Poison)
get "/v1/ping" do
send_resp(conn, 200, "pong!")
end
end
lib/endpoints/v2/base.ex
defmodule Http.Endpoints.V2.Base do
require Logger
use Plug.Router
plug(:match)
plug(:dispatch)
plug(Plug.Logger)
plug(Plug.Parsers, parsers: [:json], json_decoder: Poison)
get "/v2/ping" do
send_resp(conn, 200, "pong! 2")
end
end
如果我把我的 applications.ex 孩子放进去,我的端点可以正常工作
Plug.Cowboy.child_spec(scheme: :http, plug: Http.Endpoints.V1.Base, options: [port: Application.get_env(:http, :port)])
但我希望我的应用程序启动所有端点版本。
我尝试使用 and 创建 lib/endpoints.exrequire Http.Endpoints.V1.Base
并require Http.Endpoints.V2.Base
更改了我的 applications.ex 但它不起作用。