在设计 REST API 端点时,我应该使用 POST 和 DELETE 还是 PATCH?

Should I use POST and DELETE or PATCH when designing REST API endpoints?

我想设计一个 REST API 两个资源,usersgroups。一个用户可以加入多个群组,一个群组可以有多个用户。

假设您可以通过 /users/:id/groups/groups/:id/users 访问相关资源。您将如何为 joining/leaving 组设计 enpoints?我可以

POST /users/:id/groups/:idDELETE /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了解详情。