У меня есть два модуля: 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
Моя конечная точка работает правильно, если я добавляю свои приложения .ex дочерние элементы
Plug.Cowboy.child_spec(scheme: :http, plug: Http.Endpoints.V1.Base, options: [port: Application.get_env(:http, :port)])
Но я бы хотел, чтобы мое приложение запускало все версии конечных точек.
Я попытался создать lib / endpoints.ex с require Http.Endpoints.V1.Base
и require Http.Endpoints.V2.Base
и изменил свои приложения.бывший, но это не сработало.