子路由最佳实践

时间:2021-07-15 23:37:24

标签: rest express routes backend api-design

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

1 个答案:

答案 0 :(得分:0)

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

/item/{id}/

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

另一方面,如果有多种类型的项目,每种类型都有重叠的项目标识符,那么您可能需要在 URL 中使用其他内容来唯一标识哪种类型的项目以及要查看的项目标识符池。

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

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

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