二郎牛仔冒号
Colon in Erlang Cowboy
我正在使用 leptus, which is based on Cowboy 作为 RESTful 服务器。我的路由器有问题。
在我的代码中:
post("/restconf/operations/nm-restful:create-mp", Req, State) ->
{200, {json, <<>>, State}.
在Cowboy中,当有冒号时,它会进行绑定。但是,如果 URL 路径中实际上有一个冒号怎么办?我不希望它被束缚。官网教程中没有关于这个问题的资料
我查看了 cowboy_router
的来源(leptus 使用),我认为这是不可能的。我看不到任何方式 "escape" 来源中的冒号。如果这是真的,那么您最好的选择是使用 /restconf/operations/:anything
匹配所有此类路由,然后对函数内的参数 anything 的值进行 case。这是一个例子:
post("/restconf/operations/:thing", Req, State) ->
case leptus_req:param(Req, thing) of
<<"nm-restful:create-mp">> ->
{200, {json, <<>>, State};
_ ->
{404, {json, <<>>, State}.
我正在使用 leptus, which is based on Cowboy 作为 RESTful 服务器。我的路由器有问题。
在我的代码中:
post("/restconf/operations/nm-restful:create-mp", Req, State) ->
{200, {json, <<>>, State}.
在Cowboy中,当有冒号时,它会进行绑定。但是,如果 URL 路径中实际上有一个冒号怎么办?我不希望它被束缚。官网教程中没有关于这个问题的资料
我查看了 cowboy_router
的来源(leptus 使用),我认为这是不可能的。我看不到任何方式 "escape" 来源中的冒号。如果这是真的,那么您最好的选择是使用 /restconf/operations/:anything
匹配所有此类路由,然后对函数内的参数 anything 的值进行 case。这是一个例子:
post("/restconf/operations/:thing", Req, State) ->
case leptus_req:param(Req, thing) of
<<"nm-restful:create-mp">> ->
{200, {json, <<>>, State};
_ ->
{404, {json, <<>>, State}.