我在这两者之间挣扎:
/v1/category/{id}/articles
/v1/articles?category={id}
由于{id}
标识了某个类别,是否应该选择第一个设计总是?这里的混淆是文章:类别不是 N:1 关系,而是 N:M 。 RESTful设计是否有关于N:M关系的指导?
更新:需要考虑的其他方案:我们还为like
或save
篇文章的用户提供了集合,我们应该如何在这种情况下进行选择?
/v1/user/{id}/articles?type=save
/v1/articles?user={id}&type=save
答案 0 :(得分:2)
两个
/v1/category/{id}/articles
和
/v1/articles?category={id}
是有效的,并且对于另一个没有严格的规则。事实上,两者可以很容易地存在于同一个RESTful应用程序中。
文章类别关系的基数无关紧要,因为这两种方法仅支持一个类别。
如果你想喜欢一篇文章,请使用你POST
的资源。
POST /likes/articles/1234
身体
{
"user": "Joe"
}
会为文章Joe
创建用户1234
的新内容。你可以GET
喜欢一篇文章:
GET /likes/article/1234
可以返回
["Joe", "Jane"]
如果Joe
和Jane
都喜欢这篇文章。
要保存或更改现有文章,请在其上使用PUT
新表示。
PUT /article/1234
身体
{
"title": "The Article Title",
"content": "What the article is about"
}
当HTTP谓词存在时,请勿使用save
等查询参数。