2014-02-18 40 views
3

我有一個創建資源的請求(POST)。此資源需要很長時間才能創建(長達數小時),但其ID是立即創建的。ReST:在201之後輪詢資源的http 204狀態碼創建

在我看來,最合適的流程是:

  • POST /件事 - 響應201創建「URI通過Location頭字段中給出的資源」(如每http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  • 開始投票GET /事/ ID,具體的反應應該是:

    • 只要資源沒有準備 - 204無內容

    • 一旦資源準備 - 200與資源OK返回的響應主體

我尋求的意見/建議,因爲我基礎上的讀數(很多)我的意見而較少的經驗,這似乎從最不同的建議最初返回202接受並使用204只響應HTTP DELETE

回答

4

您可以選擇在POST返回202 Accepted

該請求已被接受處理,但處理尚未完成。該請求可能最終也可能不會最終採取行動,因爲在處理實際發生時它可能會被禁止。

現在,作爲解釋here,你可以改變你的身體反應或標題,包括像一個Status值,表示當用戶執行一個GET請求的資源生成是否已經完成。任何積極的狀態代碼都可以。

或者,如主張here,您也可以在創建實體時返回202作爲GET。

所有其他適用的狀態碼可以被認爲是「明確的」,因爲當客戶機接收204 No Content,它不能與「被生成的實體,它是空的」和「尚未產生的實體」進行區分。