【发布时间】:2018-02-05 16:18:54
【问题描述】:
假设有一个实体公司和一个实体国家。一个公司可以属于多个国家,一个国家可以有多个公司。因此,对于公司来说,有一个具有不同角色的中间表成员资格,例如一家公司是一个国家的制造商,而另一家公司是一个国家的供应商。一个国家可以有多种状态,例如 is_active 等。
现在我们要从角色为制造商且国家状态为 is_active = false 的特定公司获取所有国家/地区。
RESTful API 端点如何查找此用例?是否允许过滤多个资源?一些想法:
GET /companies/{id}/nations?role=manufacturer&is_active=false
GET /memberships/{id}/nations?role=manufacturer&is_active=false
更新 也许我的问题不够清楚。查询字符串参数在两个不同的表/实体中进行查找。角色在成员资格实体内,而 is_active 在国家实体内。我认为只允许对请求的资源进行过滤。也许我可以把这个问题分成两个用例。
1) 使用 URI 中的中间资源是否“更好”? 2) 我们可以在多个表/实体上过滤带有查询字符串参数的资源吗?
【问题讨论】:
-
这完全取决于您作为 API 设计器如何实现它。 REST 不关心 URI 的外观,因为 URI 的语义是在关系本身中提供的。
标签: rest api web restful-architecture restful-url