2014-01-13 4 views
3

Я пытался использовать это простое в противном случае ограничения, RoutingCowboy маршрутизация с ограничениями держит неудачу

Dispatch = cowboy_router:compile([{'_', 
     [ 
      {"/tokens/:tokenid",{tokenid,int}, paytoken_handler, []} 
     ]}]), 

, но я получаю ту же ошибку.

Мой запрос локон 10.10.10.56:8080/tokens/1000 -v -H "Content-Type: применение/JSON"

[ошибка] Ranch слушателем HTTP был процесс соединения начался с cowboy_protocol: start_link/4 at < 0.97.0> exit with reason: {function_clause, [{cowboy_router, check_constraints, [{tokenid, int}, [{tokenid, < < "1000" >>}]], [{file, "src/cowboy_router.erl "}, {линия, 276}]}, {cowboy_router, match_path, 4, [{файл," SRC/cowboy_router.erl "}, {линия, 264}]}, {cowboy_router, выполнение, 2, [ {file, "src/cowboy_router.erl"}, {line, 172}]}, {cowboy_protocol, execute, 4, [{file, "src/cowboy_protocol.erl"}, {line, 529}]}]}

ПРИМЕЧАНИЕ. Когда я удаляю ограничение {tokenid, int}, он работает нормально.

Dispatch = cowboy_router:compile([{'_', 
     [ 
      {"/tokens/:tokenid", paytoken_handler, []} 
     ]}]), 

Любая помощь пожалуйста.

Спасибо.

ответ

4

Редактировать

Похоже, что ограничения должны быть переданы в виде списка элементов

{"/:id/:h",[{id,int},{h,int}], toppage_handler, []}

для вашего случая это должно работать

{"/tokens/:tokenid",[{tokenid,int}], paytoken_handler, []}

+0

Это не будет работать. Вы получите переменную 'Name' unbound –

+1

Я вижу. Позвольте мне попробовать .. –

+1

Да, сейчас это работает, его не так ясно из документации. Благодарю. –

Смежные вопросы