我想设计一个REST API的两个资源,即用户和组。一个用户可以加入多个组,一个组可以有多个用户。
假设您可以通过/users/:id/groups
和/groups/:id/users
访问相关资源。您如何设计加入/离开小组的观点?我可以做
POST /users/:id/groups/:id
和DELETE /users/:id/groups/:id
但是我也可以去
PATCH /users/:id/groups/:id
并发送一个布尔值。
当然,我不需要这些端点作为组,因为它们是多余的,这很明显。我不确定这是否是基于意见的问题,但是处理这种关系的常用方法是什么?
答案 0 :(得分:1)
这种方法似乎很好:
POST /users/:id/groups/:id
DELETE /users/:id/groups/:id
PATCH
有效载荷不应为布尔值。 PATCH
有效负载应该包含一组描述如何修改资源的指令。合适的格式为JSON Patch和JSON Merge Patch。有关详细信息,请参阅此answer。