Erlang Cowboy的结肠

时间:2017-11-11 02:46:39

标签: url erlang router cowboy

我使用基于leptusCowboy作为RESTful服务器。我的路由器有问题。

在我的代码中:

post("/restconf/operations/nm-restful:create-mp", Req, State) ->
    {200, {json, <<>>, State}.

在牛仔中,当有一个冒号时,它会做绑定。但是如果URL路径中确实存在冒号呢?我不希望它受到约束。官方网站教程中没有关于此问题的信息。

1 个答案:

答案 0 :(得分:0)

我查看了cowboy_router(leptus使用的)的来源,我不认为这是可能的。我看不到任何方法来“逃避”源中的冒号。如果这是真的,那么最好的选择是使用/restconf/operations/:anything来匹配所有这些路线,然后对函数内部参数的值进行处理。这是一个例子:

post("/restconf/operations/:thing", Req, State) ->
  case leptus_req:param(Req, thing) of
    <<"nm-restful:create-mp">> ->
      {200, {json, <<>>, State};
    _ ->
      {404, {json, <<>>, State}.