Задать вопрос

Erlang как получить текущий урл?

Подскажите изучающему erlang, как получить текущий url, и получить его гет параметры.

Цель из запросов:
/route/{ID} или /route/?id={ID}
получить ID и действовать по ситуации.

использую otp 17, cowboy, ratchet.
Не удалось нагуглить ответ (
  • Вопрос задан
  • 2358 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
begemot_sun
@begemot_sun
Программист в душе.
Вам видимо поможет cowboy_req:path + функции из модуля re в случае ЧПУ.
и насколько помнится cowboy_req:qs + cow:parse_qs в случае id в виде GET-параметра.

Ссылочки для изучения исходников:
https://github.com/ninenines/cowboy/blob/master/sr...
https://github.com/ninenines/cowlib/blob/master/sr...

А также мануал: ninenines.eu/docs/en/cowboy/HEAD/manual
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryttt
erlang, perl, php, haskell (beginner) dev
Вам нужен cowboy_req:binding

Dispatch = cowboy_router:compile([
{'_', [
{"/:service/:controller/:action/[:id/[...]]", kf_route_handler, []}
]}
]),

handle(Req, State) ->
lager:info("~p",[Req]),
{Controller, _} = cowboy_req:binding(controller, Req, <<"index">>),
{Action, _} = cowboy_req:binding(action, Req, <<"index">>),
{M, _} = cowboy_req:method(Req),

...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы