rest - 子路由最佳实践
问题描述
我正在构建一个具有 route: 的 api /market/items/{category}
,它从一个类别返回项目。如果用户单击一个项目,我有一条/item/{id}/
返回有关该项目的信息的路线。我想知道在创建宁静的 api 时这是否是一种不好的做法。因为我经常会看到类似/market/items/{category}/{id}
. 你怎么看?
解决方案
如果只id
需要 来检索项目(换句话说,id 本身唯一地标识项目而没有任何其他信息),那么没有理由在 URL 中也需要一个类别,所以这样:
/item/{id}/
对于一个安静的 API 来说就很好了。
另一方面,如果有多种类型的项目,每个项目标识符重叠,那么您可能需要在 URL 中添加其他内容来唯一标识哪种类型的项目,从而确定要查看的项目标识符池。
您可能会看到一些网站在其网页 URL 中执行类似操作的原因之一:
/market/items/{category}/{id}
用于搜索索引,他们希望类别名称与项目相关联以用于搜索引擎索引。但是,如果这只是一个安静的 API,而不是可见的网页,那么您可能不会尝试针对搜索命中优化它。
推荐阅读
- python - 重复,drop_duplicates 故障
- rust - Jemalloc、Debug Symbol 和 Panic 消耗了多少内存?怎么找到这个?它位于哪里?
- c# - 实体框架类型中的每个属性名称必须是唯一的
- python - 使用霍夫变换检测圆
- python - 熊猫合并中的vlookup行为
- logging - 根据日期前缀拆分文件?
- javascript - 我收到“第 2 行错误,字符 4:解析错误。预期的主表达式”
- networking - C#如何获取网络适配器指标?
- xamarin.forms - Xamarin iOS 中的 PayUMoney 集成
- asp.net-core - 使用 IdentityServer4 使用授权中间件保护静态文件