2012-12-20 76 views
1

我有一個webservice,我們打算用於批准交易。批量更新的寧靜服務

這是一個批處理過程,但我們覺得PUT是最合適的方法,但相信它通常應該爲個別事務保留。

我們應該堅持使用PUT此類似過程和通有效載荷:

{ 
    "Transactions": [ 
     { 
      "TxId": "gtx-32", 
      "VendorUserId" "76", 
      "Status": "A" 
     }, 
     { 
      "TxId": "gtx-76", 
      "VendorUserId" "76", 
      "Status": "D" 
     } 
    ] 
} 

上面會設置TxID添加:GTX-32到狀態A和TxID添加:GTX-76到狀態d

然後我們會回覆那些具有更新狀態的事務的json對象。

如果任何一個事務請求更新爲無效狀態,則響應只會針對事務具有「舊」狀態(我們是否應該在其中包含錯誤消息?)。

如果PUT不適合採用這裏,我們會歡迎您提出替代方案。

我們都知道,這是真的只有記錄的部分更新所以不是真正的PUT然而,這是最肯定的更新...

+1

我無法鏈接特定的文檔,但我非常喜歡Parse.com如何在REST中執行批處理操作。此頁面上的CTRL + F「批量操作」:https://parse.com/docs/rest – Bartek

回答

4

PUT動詞是指「在這裏把這個文件」 。重要的是,PUT請求的URL旨在成爲文檔應該「存儲」的位置,即URL上的GET將返回上次放置在那裏的文檔。

就您而言,除非您將您的批量信息「上傳」到特定位置,並且可以將批量視爲自己的文檔,否則PUT可能不是您的意思。

相反,您應該使用更通用的POST,打算用於請求現有資源進程請求中包含的文檔。該響應表示處理操作的結果。

POST可能是HTTP協議中最通用的動詞。 「過程」可以是任何你需要的東西,所以當你沒有發現任何其他動詞反映你想要執行的活動時,通常是最好的選擇。