[英]REST Path params conflicting with resource path?
这个问题是在我使用 JAX-RS 构建后端时出现的,但这确实适用于任何 REST API。
JAX-RS 如何处理可能由于参数路径变量而发生冲突的路径? 假设你有
@POST
@Path('createBox/{boxName}')
foo()
@POST
@Path('createBox/small')
bar()
有人想用路径参数调用第一个端点small
。 在这种情况下会发生什么? 如果foo()
和bar()
具有不同的参数(可能像@FormParam
),这有助于区分吗? 如果它们在没有 arguments 的情况下完全相同怎么办? 行为是不确定的吗?
参考: RESTful Java with JAX-RS 2.0, 2nd Edition by Bill Burke
"/customers/{id: .+}
<-- getCustomer"/customers/{id: .+}/address"
<-- 获取地址优先规则
JAX-RS 规范为匹配 URI 表达式定义了严格的排序和优先级规则,并且基于最具体的匹配获胜算法。
{id}
或{id: .+}
。 这种排序是按降序排列的。{id}
你的例子:
bar()
获胜,因为根据规则 1,它具有更多文字字符
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.