RESTful API设计,命名起草端点

时间:2017-02-25 17:08:55

标签: rest api-design

命名端点以创建"草案"最佳实践资源的版本?

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',
}

2 个答案:

答案 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。就像你的第一个命题一样。