簡體   English   中英

將DELETE請求用於REST中不完全刪除

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM