首页 > 解决方案 > 子路由最佳实践

问题描述

我正在构建一个具有 route: 的 api /market/items/{category},它从一个类别返回项目。如果用户单击一个项目,我有一条/item/{id}/返回有关该项目的信息的路线。我想知道在创建宁静的 api 时这是否是一种不好的做法。因为我经常会看到类似/market/items/{category}/{id}. 你怎么看?

标签: restexpressroutesbackendapi-design

解决方案


如果只id需要 来检索项目(换句话说,id 本身唯一地标识项目而没有任何其他信息),那么没有理由在 URL 中也需要一个类别,所以这样:

/item/{id}/

对于一个安静的 API 来说就很好了。

另一方面,如果有多种类型的项目,每个项目标识符重叠,那么您可能需要在 URL 中添加其他内容来唯一标识哪种类型的项目,从而确定要查看的项目标识符池。

您可能会看到一些网站在其网页 URL 中执行类似操作的原因之一:

/market/items/{category}/{id}

用于搜索索引,他们希望类别名称与项目相关联以用于搜索引擎索引。但是,如果这只是一个安静的 API,而不是可见的网页,那么您可能不会尝试针对搜索命中优化它。


推荐阅读