我的應用程序交易要求用戶註冊才能使用該服務,並且要他們創建應用程序。接口的初始計劃如下...Rest API需要額外的操作 - 如何構造?
POST /Users/Applications
- 創建應用程序並返回唯一標識符。
GET /Users/Applications/{id}
- 檢索現有的應用程序。
PUT /Users/Applications/{id}
- 更新現有的應用程序。
DELETE /Users/Applications/{id}
- 刪除現有的應用程序。
這看起來非常乾淨合理,並且充分利用了HTTP動詞。不過,如果我現在需要在應用程序上進行其他操作,例如
ActivateApplication - 一旦所有的數據都在系統中使用PUT我現在希望用戶激活他們的應用程序。這不僅僅是使用PUT更新應用程序狀態的問題,還需要完成幾項額外的工作來激活應用程序,例如向HR部門發送電子郵件。通知他們新的申請已經到達。
PrintApplication - 當從客戶端調用時,將應用程序打印到辦公室打印機。 (不是一個理想的例子,但你的想法,我敢肯定!)
我將如何構建我的REST接口來處理這種類型的請求?也許這樣...
POST /Users/Applications/{id}/print
POST /Users/Applications/{id}/activate
...爲激活我改變狀態,所以我相信我需要使用POST。我知道REST是關於文檔的,但是當我需要對文檔執行操作時,如何構造我的API,而不僅僅是獲取和更新文檔本身?
對於激活,你有沒有考慮過賬到/用戶/應用/ {ID}有例如IsActivated屬性設置爲true,更新的應用程序資源?然後,您可能需要在屬性更改時處理事件,以便觸發發送電子郵件等流程。 – elolos 2014-10-06 13:16:33