在RESTful API中,DELETE调用应该是递归的吗?

Dan*_*Dan 7 rest api-design restful-architecture

假设我有以下关系数据结构(例如):

A `post` which is a child of a `category`
Run Code Online (Sandbox Code Playgroud)

可以通过以下API端点访问此数据:

  • GET /category/1
  • GET /category/1/post/1
  • GET /category/1/post/2

我现在决定要使用我的API删除category 1所以我运行DELETE /category/1.

但是,category 1如果没有类别,关系子子帖子元素不能存在,您是否希望此调用失败并说您必须先删除子元素或者在删除类别时自动递归删除子元素?

Jus*_*tas 2

我想说,当你DELETE分类时它应该会成功。

假设它失败了 - 那么您需要GET所有帖子和评论,然后迭代它们DELETE- 有什么意义?

另外,我会使用复数名词来命名资源,例如:

GET /categories/1/posts
Run Code Online (Sandbox Code Playgroud)

当获取所有帖子时,它看起来会更加一致。

然而,如何实现它取决于您,带或不带级联 - 看看哪种更适合您的需求。