【发布时间】:2019-09-08 02:00:14
【问题描述】:
我有两个模块: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)])
但我希望我的应用程序启动所有端点版本。
我尝试使用 require Http.Endpoints.V1.Base 和 require Http.Endpoints.V2.Base 创建 lib/endpoints.ex 并更改了我的 applications.ex 但它不起作用。
【问题讨论】: