2011-05-26 55 views
4

似乎無法在任何地方找到此問題的答案。有一項服務,當發佈內容時,它會被排隊等待處理,響應代碼爲202.該標準提供了一個指向狀態監視器的指針,我已經完成了該指針,但是如果客戶端轉到資源準備好之前的資源?我會認爲404除了資源存在,只是尚未處理。REST爲202碼後未準備好的資源返回什麼HTTP代碼?

想法?

回答

1

檢查this後:

當客戶端檢查狀態URI後,如果該項目仍懸而未決則狀態URI可能會返回與實體體描述這個200 OK響應。如果資源已經創建,那麼狀態URI可能會返回一個201 Created響應,其中Location頭指向新資源的位置。如果該項目不是由於某種原因而創建的,那麼狀態URI可能會返回一個410 Gone響應。在這種情況下,您應該包含一個實體正文,解釋爲什麼資源消失,即「由於處理錯誤,我們無法創建此資源。」404 Not Found響應也是可以接受的,但410 Gone響應意味着持久性;所請求的資源已經消失。

似乎對我比較合理,除了Location表頭IMO並不特別適合這個確切的目的。

+0

嘿,謝謝!這樣做更有意義。這是我開發的第一個RESTful服務,所以我仍然在學習所有的細微差別。 – SinisterMinister 2011-05-31 16:33:04

+0

200對於人類可讀的機構的確定響應對於搜索引擎抓取工具來說非常混亂,所以我認爲這不是您想要的。 201 Created的意思是「這個請求創建了一個新的資源」,所以它不適合投票。 410如果你想對客戶說「這個資源已經沒有了,再也不要求它了」,那就好了。 404聽起來不錯,因爲它沒有說明資源不可用的原因。大多數機器人稍後會重試請求,但這並不意味着「稍後再回來」。 – skalee 2013-01-21 05:07:53

相關問題