命名端点以创建"草案"最佳实践资源的版本?
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',
}
答案 0 :(得分:0)
从我在有效载荷上看到的情况来看,DRAFT只是资源的状态。你可以使用PUT来更新它。
您会在URI路径中详细解释为什么要草拟DRAFT吗?
答案 1 :(得分:0)
与我所说的大多数事情一样,这取决于它。使用REST时的一般假设是您已经获得了资源集合。这就是为什么最常见的命名约定是在命名端点时使用复数。
当我看到和名为/posts
的端点时,我假设通过对其进行GET,我会收到一些帖子。同样,通过调用/posts/{id}
我应该收到一个具有特定ID的帖子。
资源集合也相互嵌入 - 当我看到端点/posts/{id}/drafts
时,我假设我会获得具有给定ID的帖子的草稿。
现在的问题是 - 您是否希望将您的数据视为两个独立的集合(您必须以某种方式进行同步)或者您是否希望坚持使用嵌入式集合?如果是第一个,那么您可以有两个端点/posts
和/drafts
。如果是第二个,那么您应该使用根端点/posts
然后/posts/{id}/drafts
。
但是,如果帖子没有草稿集合,您可以简单地使用单个/posts
端点并且不指定任何其他内容,因为这会弄乱设计您的API。就像你的第一个命题一样。