命名一个端点以创建最佳实践的“草稿”版本的资源时?REST风格的API设计,命名起草端点
POST >>/posts
{
title: 'My Post',
body: 'The content of my post',
status: 'DRAFT',
}
或者是更好的:
POST >>/posts/drafts
{
title: 'My Post',
body: 'The content of my post',
}
命名一个端点以创建最佳实践的“草稿”版本的资源时?REST风格的API设计,命名起草端点
POST >>/posts
{
title: 'My Post',
body: 'The content of my post',
status: 'DRAFT',
}
或者是更好的:
POST >>/posts/drafts
{
title: 'My Post',
body: 'The content of my post',
}
从我上有效载荷看到,草案只是状态资源。你可以使用PUT来更新它。
你能解释一下为什么你想在URI路径中进行DRAFT吗?
'PUT'是更换整个实体,' PATCH' - 用于部分更新。 –
与我说的大部分事情都有关系。使用REST时的一般假设是您已获得资源集合。这就是为什么最常见的命名约定是在命名端点时使用复数形式。
当我看到终端名为/posts
时,我假设通过对它进行GET操作,我会收到帖子的集合。同样,通过拨打/posts/{id}
我应该收到一个特定ID的帖子。 资源集合也彼此嵌入 - 当我看到端点/posts/{id}/drafts
时,我会假设我将为具有给定ID的帖子获取草稿。
现在的问题是这样的 - 你想把你的数据作为两个单独的集合(你必须以某种方式同步)或者你想坚持这个嵌入集合?如果第一个则可以有两个端点/posts
和/drafts
。如果第二个,那么你应该去与根端点/posts
,然后/posts/{id}/drafts
。
但是,如果帖子没有草稿集合,那么您可以简单地使用一个/posts
端点,并且不要指定任何其他内容,因为这会混淆API的设计。就像你的第一个主张一样。
http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it –