在设计REST API端点时应该使用POST和DELETE或PATCH吗?

时间:2019-10-11 07:50:13

标签: rest api-design

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

假设您可以通过/users/:id/groups/groups/:id/users访问相关资源。您如何设计加入/离开小组的观点?我可以做

POST /users/:id/groups/:idDELETE /users/:id/groups/:id

但是我也可以去

PATCH /users/:id/groups/:id并发送一个布尔值。

当然,我不需要这些端点作为组,因为它们是多余的,这很明显。我不确定这是否是基于意见的问题,但是处理这种关系的常用方法是什么?

1 个答案:

答案 0 :(得分:1)

这种方法似乎很好:

POST /users/:id/groups/:id
DELETE /users/:id/groups/:id

PATCH有效载荷不应为布尔值。 PATCH有效负载应该包含一组描述如何修改资源的指令。合适的格式为JSON PatchJSON Merge Patch。有关详细信息,请参阅此answer