[英]Use DELETE request for not purely deletion in REST
我在春季对REST API的设计感到困惑。
情况
有通过调用DELETE: /v1/api/users/{userId}
来删除用户的DELETE请求DELETE: /v1/api/users/{userId}
,但这不是纯粹的用户删除,我必须在删除之前将用户票证重新分配给另一个活动用户。
用户A有5张票证,当我删除用户A时,他/她的所有票证将重新分配给另一个选定的用户,然后将用户A从系统中删除。
我的初步建议
我使用最简单的解决方案
DELETE: /v1/api/users/{userIds}
并带有以下内容以接受ID进行重新分配
@RequestBody int assigneeId
我的困境
我的直觉告诉我,这不是设计DELETE请求API的好方法,删除应该只执行删除应该做的事情,我想了很长时间,但找不到一种优雅的方法。 有任何想法吗?
假设您有与用户关联的案例。
我会像这样建立一个REST API:
GET /v1/api/user : Return all users
GET /v1/api/user/{id} : Return a user
POST /v1/api/user : Add a user
PUT /v1/api/user/{id} : Update a user
DELETE /v1/api/user/{id} : Delete a user
GET /v1/api/user/{id}/case : Get user's cases
PUT /v1/api/user/{id}/case : Reassign user's cases to another user [{id}]
如果客户致电DELETE / v1 / api / user / {id},并且该用户有个案分配给他。 您可以返回HTTP代码409 CONFLICT,指示由于继承的对象而无法删除。 客户端必须将PUT / v1 / api / user / {id} / case关联到其他人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.