设计REST API端点:路径参数与查询参数?

时间:2017-01-28 03:44:43

标签: php rest slim restful-architecture restful-url

将这两个表放在数据库中:

  • topics包含主题列表
  • terms包含uni,bi和trigrams的列表
  • baggingstopic_idterm_idweight

术语可用于多个主题,那么您将如何构建API端点?这是一个查询params vs path params ......

路径参数

  

获取https://localhost/topics/:topic-id/terms/

查询参数

  

获取https://localhost/terms/?filter_by=topic&filter_value=:topic-id

最后一个解决方案对于执行各种terms操作和搜索也很有用。第一个(Path Params)只能用于给定的topic

1 个答案:

答案 0 :(得分:2)

如果您愿意,可以同时支持。 当我需要使用动态参数搜索某些内容时,我通常会使用查询参数。

为了获取与主题ID相关联的所有术语,我将使用

GET https://localhost/topics/:topic-id/terms/

这应列出topic_id

的所有字词

但是如果您的搜索有更多想要使用的过滤器,我会继续并支持查询参数。假设您只想要特定主题的特定类型的术语,那么我将使用查询参数。

我个人不喜欢查找像这样的特定主题id。

GET https://localhost/terms/?filter_by=topic&filter_value=:topic-id