Я могу использовать Cowboy только для веб-сервера, который обрабатывает JSON REST API. Мне нужно иметь возможность использовать только Cowboy + независимо от возможностей языка для управления и обработки различных и переменных маршрутов, а также с использованием значений GET.
Я получаю путь, как описано в следующей процедуре:
def handle(req, router) do
headers = [{"content-type", "application/json"}]
{path, req} = :cowboy_req.path(req)
{:ok, resp} = :cowboy_req.reply(200, headers, router.call(path), req)
{:ok, resp, router}
end
И в конечном итоге route.call(path)
вызывает следующее:
defp serve("/call/[:thing]") do
list = [path: "oy"]
IO.puts :thing
{status, result} = JSON.encode(list)
result
end
Сам по себе serve("/call")
возвращает JSON без проблем, но попытка запросить любой другой маршрут под /call
на сервер заставляет его ответить ответом 404
(уже обработанным мной).
Каков наилучший подход при обработке этих динамических маршрутов? Имейте в виду, что я могу использовать только Cowboy и ничего больше.