我目前使用RESTful API開發任務隊列。糾正不可滿足的REST請求的HTTP狀態代碼
爲了處理任務,工作人員必須創建一個租約。
PUT .../leases
如果任務隊列中有任務可用,這會成功,租約將被創建並在服務器狀態201
響應。
我不確定在沒有任何任務可用時如何處理這種情況。當沒有可用的任務時,無法創建租約。哪種HTTP狀態碼適合這種情況?
204 No Content
- 客戶端沒有出錯,但沒有數據。400 Bad Request
- 這是恕我直言不適用,因爲它意味着,這是不是這種情況
與此同時,我認爲「請求無法被服務器理解」,這種方法可能不是理想的。我可以按照Brian的推薦使用503
,也可以使用REST in practice,否則我會改變整個過程。
我在考慮可以暫時創建的租約。這意味着
PUT
到/leases
- 可以創建一個租賃,分配任務,並與
201
迴應,或創建一個試探性租賃與202
- 暫定租賃響應會停留一段時間。如果任務可用,則將其分配給暫定租約。如果對於一個特定的時間內沒有任務,租賃被刪除,服務器將與
410
- 響應客戶端應該因爲資源是由服務器控制,然後再以1
我不喜歡說的概念,資源不存在,因爲它是存在的。也許我的做法是錯誤的。 – ccellar
查看它的一種方法是,如果您嘗試在不存在的博客上查看頁面,則會得到404頁面。如果該頁面被創建,它將不再是404。它仍然不是一個確切的適合,但我不認爲他們中的任何一個。 – abraham