rest - REST GET 查询参数建议
问题描述
我可能会让这变得比它应该的更复杂,但我想知道对于 GET 端点搜索资源的一个或多个实体来说,什么被认为是“良好实践”。我还想让它们“全部”变得容易。对于上下文,我希望人们能够查找与 productId 相关的详细信息,该 productId 可以位于多个(300-400 并且还在增长)位置。对于少数几个位置来说,这并不是一项繁重的操作,但如果用户想要返回所有相关位置,这可能是一个昂贵的 api 调用。
其中哪一个最好?
使用列表指定哪些位置,如果未提供,则假定为“所有位置”
/product/{productId}/search?locations=[1,2,3]
创建一个 allLocations 查询参数以指定用户想要查看所有位置
/product/{productId}/search?allLocations=True
解决方案
- 首先,您可以使用逗号分隔值而不是数组。
?location=1,2,3
// Then in backend, you can explode/split it which will be much easier.
- 为获得最佳实践,当
location
查询参数为空或不可用时,从所有位置获取结果。 - 为了降低 API 调用的成本,您可以一次限制所选位置的数量。
推荐阅读
- javascript - 如何在 HTML 代码中的 Javascript 与 Style.css 之间建立链接?
- android - EditText 中的方法 setText() 改变光标的位置
- node.js - 在 express.js 中设置服务器超时
- linux - linux 中带有 ssl 的 libcurl(curle_not_built_in 错误)
- python - 如何在虚拟环境中使用 pip 安装较低版本的 Django
- spring-boot - Spring Boot Oracle Exadata | 连接重置错误
- azure-data-lake - 从内部连接子查询中选择前 1
- c# - 当使用按位和时,运算符 & 不能应用于 int 和 bool 类型的操作数
- java - Camel/Spring 无法识别正确的重载方法
- jquery - CSS3绘制边框动画方向