是否有通過REST爲POST,PUT,PATCH動詞執行BATCH操作的最佳實踐?通過REST服務批處理
我下面當前範例是,JSON有效載荷在所述主體中指定的所有3個操作
一個)POST返回創建的資源
B的位置)PUT/PATCH返回201,如果更新成功
對於批處理操作,我打算接受有效內容主體中的json對象的集合,但正試圖確定要返回給客戶端的內容。 在處理批處理時,操作可能會成功執行某些項目,但可能會失敗。
考慮到這一點,我認爲最好的做法是從有效負載中返回指示每個 項目的成功/失敗狀態的對象集合。
但是,這偏離了上面(a)和(b)中概述的範例。
相反,它是否有意義將代表批處理操作本身的ID的標識符返回給客戶端?
然後客戶端會發出一個後續的GET來獲取它所請求的操作的結果。
這種方法聽起來合理嗎?如果是這樣,如果操作沒有完成,在後續GET上阻止客戶端是否合理?或者總是返回最新狀態,即客戶端請求處理的每個項目的響應集合是否合理。
想法/想法/建議?
由於REST是一種體系結構風格,不一定有明確的「準則」,並且沒有關於如何實現HTTP動作的操作的要求,所以顯然這裏沒有正確或錯誤的答案。
我在尋找優雅,自然,直觀的解決方案。
REST不是「指南」。這是一種建築風格。 –
每個資源是否需要批處理操作,或者只有一個? –
你能更具體地瞭解你的任務嗎? – inf3rno