在设计 REST API 端点时,我应该使用 POST 和 DELETE 还是 PATCH?
Should I use POST and DELETE or PATCH when designing REST API endpoints?
我想设计一个 REST API 两个资源,users 和 groups。一个用户可以加入多个群组,一个群组可以有多个用户。
假设您可以通过 /users/:id/groups
和 /groups/:id/users
访问相关资源。您将如何为 joining/leaving 组设计 enpoints?我可以
POST /users/:id/groups/:id
和 DELETE /users/:id/groups/:id
但我也可以去
PATCH /users/:id/groups/:id
并发送一个布尔值。
当然我不需要组的那些端点,因为它们是多余的,这应该是显而易见的。我不确定这是否是一个基于意见的问题,但处理此类关系的常用方法是什么?
这个方法好像没问题:
POST /users/:id/groups/:id
DELETE /users/:id/groups/:id
PATCH
payload is not supposed to be a boolean value. The PATCH
payload is supposed to contain a set of instructions describing how the resource will be modified. Suitable formats are JSON Patch and JSON Merge Patch. Refer to this answer了解详情。
我想设计一个 REST API 两个资源,users 和 groups。一个用户可以加入多个群组,一个群组可以有多个用户。
假设您可以通过 /users/:id/groups
和 /groups/:id/users
访问相关资源。您将如何为 joining/leaving 组设计 enpoints?我可以
POST /users/:id/groups/:id
和 DELETE /users/:id/groups/:id
但我也可以去
PATCH /users/:id/groups/:id
并发送一个布尔值。
当然我不需要组的那些端点,因为它们是多余的,这应该是显而易见的。我不确定这是否是一个基于意见的问题,但处理此类关系的常用方法是什么?
这个方法好像没问题:
POST /users/:id/groups/:id
DELETE /users/:id/groups/:id
PATCH
payload is not supposed to be a boolean value. The PATCH
payload is supposed to contain a set of instructions describing how the resource will be modified. Suitable formats are JSON Patch and JSON Merge Patch. Refer to this answer了解详情。