[英]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.