我一直在琢磨這一段時間,但無法將其包裹在我的頭上。假設我有一個通過REST公開的任務系統。任務有自己的生命週期例如爲:REST - PUT(更新)資源狀態
CREATED -> ACTIVE -> PROCESSING -> CLOSED
| | |
| |-->ESCALATED-->|
|
--> DISMISSED
現在用POST我在體內有效載荷提供的所有信息創建任務。
但是現在我只需要改變任務的狀態並且可以添加註釋。所以在所有理論PUT是要走的路 - 它正在更新資源。但這裏的東西:
PUT:/任務/ {任務id}行動=激活 似乎合法的URI但動作已經擁有可用於改變資源的狀態的請求參數:param - 那麼PUT有效載荷呢?該端點的用戶發送長度爲0的消息的請求是否直觀?
更新:
對不起我的英文不好。我的意思是 - 改變資源狀態的一種好方法是使用URI參數,而不使用BODY(Content-Lenght:0)因此URI:/ tasks/32/?action = PUT請求僅限已關閉將「任務」狀態從改爲改爲已關閉。
如果這是一種不好的做法 - 哪種方法被認爲是更好的做法?
我不確定我是否明白了,但是,恕我直言,從REST的角度來看,你應該把資源與機構有效載荷(比如POST),而不是通過querystring傳遞數據;我假設查詢字符串僅用於獲取資源。 – ilpaijin
和寫了10分鐘後,我發現這 - http://stackoverflow.com/questions/7323958/areput-and-post-requests-required-expected-to-have-a-request-body @ ilpaijin - 感謝輸入,但是上面的堆棧文章呢? – Xeperis
我很抱歉我的英語不好,但我沒有得到你的問題「上面的堆棧帖子」。 – ilpaijin