RESTful API设计,命名绘图端点
在为创建资源的“草稿”版本命名端点时,哪一种做法是最佳做法 发布>>RESTful API设计,命名绘图端点,rest,api-design,Rest,Api Design,在为创建资源的“草稿”版本命名端点时,哪一种做法是最佳做法 发布>>/posts { title: 'My Post', body: 'The content of my post', status: 'DRAFT', } 还是最好: 发布>>/posts/drafts { title: 'My Post', body: 'The content of my post', } 从我在有效负载上看到的情况来看,草稿只是资源的状态。您可以使用PUT来更新它
/posts
{
title: 'My Post',
body: 'The content of my post',
status: 'DRAFT',
}
还是最好:
发布>>/posts/drafts
{
title: 'My Post',
body: 'The content of my post',
}
从我在有效负载上看到的情况来看,草稿只是资源的状态。您可以使用PUT来更新它
您是否可以解释更多关于您为什么要在URI路径中起草?就像我所说的大部分事情一样。在使用REST时,一般的假设是您拥有资源集合。这就是为什么最常见的命名约定是在命名端点时使用复数 当我看到一个名为
/posts
的端点时,我会假设通过访问它,我会收到一组帖子。类似地,通过调用/posts/{id}
我应该会收到一篇带有特定id的帖子。
资源集合也相互嵌入-当我看到一个端点/posts/{id}/drafts
时,我会假设我将获得具有给定id的文章的草稿
现在的问题是,您是想将数据作为两个独立的集合(必须以某种方式进行同步),还是想将其作为嵌入式集合?如果是第一个,则可以有两个端点/posts
和/drafts
。如果是第二个,则应使用根端点/posts
,然后使用/posts/{id}/drafts
但是,如果一篇文章没有草稿集,您可以只使用一个
/posts
端点,而不指定任何其他内容,因为这将打乱API的设计。正如您的第一个建议一样。PUT
用于替换整个实体,PATCH
-用于部分更新。