具有高级过滤器的RESTful请求(1-N-1关系)

时间:2017-05-23 11:47:54

标签: rest restful-url

我有3种不同的资源:

/articles
/reviews
/reviewers

作为数据库设计,我们会:

+----------+
| Articles |
+----------+
| id       |
| title    |
| content  |
+----------+

+-------------+
|   Reviews   |
+-------------+
| id          |
| id_article  |
| id_reviewer |
| content     |
+-------------+

+-----------+
| Reviewers |
+-----------+
| id        |
| name      |
+-----------+

是否有一种RESTful方式来获取由名称为“Jack”的评论者审阅的所有文章?

1 个答案:

答案 0 :(得分:1)

是的,

根据用例建模资源。在这种情况下,您需要一个专门返回Jack所审阅的所有文章的资源,而不是找到其他资源的组合来得到答案。

您的资源应该与您尝试解决的问题紧密匹配,并且数据库架构无关紧要。在这种情况下,我可以想象存在一个资源,它返回所有文章,允许您指定审阅文章的用户的名称,如下所示:

GET /articles?reviewed-by=Jack

如果您的用例需要,响应可能包含文章,也许还有一些关于评论的信息。