假设我们在项目管理 SaaS 中的User
模型和模型之间存在 M:M 关系。Project
自然地,我们有一个将用户映射到项目的数据透视表。如果用户离开或项目经理将该用户从项目中删除,则删除条目。
即使最终结果基本相同(即条目被删除),我想通过定义两个单独的 API 端点来区分这两个操作会更好,如下所示:
用户离开项目
路线DELETE /users/{id}/projects/{id}
UserProjectController@destroy($id)
指$id
项目的行动
项目经理删除用户
路线DELETE /projects/{id}/participants/{id}
ProjectParticipantController@destroy($id)
指$id
用户的动作
我应该忽略 Cruddy by Design 和 RESTful 设计原则,leave()
join()
remove()
而是简单地定义动作并在 URI 中使用动词吗?像这样:
POST /projects/{id}/join
POST /projects/{id}/leave
POST /projects/{id}/participants/{id}/remove