@QueryParam
JAX-RS和 之间有什么区别@MatrixParam
?从文档中。查询参数和矩阵参数都可以在特殊条件下定位一种资源。那么用例有什么区别呢?
ps:
查询参数:
url ? key=value;
矩阵参数
url; key=value;
@MatrixParam
注释将应用于 URL 中存在的特定资源, 并将@QueryParam
应用于整个请求 URL。
以任何超市为例,如果您想要满足多种条件的所有水果,例如 type=fruits 并且价格范围从 300 开始并列出匹配的 10 种水果,您可以进行以下 API 设计,
http://dev.brandstore.com/inventory/grocery;type=fruits/price;range=300/?limit=10
在上面的示例中,第一个 Matrix 参数type=fruits
仅适用于杂货资源,同样range=300
适用于仅价格资源,但用于分页的查询参数limit=10
适用于整个请求 URL。是的,如果只使用查询参数,你最终会得到像“grocery_type”和“grocery_price”这样的参数,并且你会失去请求中参数的位置所增加的清晰度。