0
我正在用Symfony2構建一個RESTful服務。構建RESTful服務以在未找到結果時進行響應
它有一個搜索函數返回一個搜索實體,該實體有一個結果數組。
如果用戶執行不正確的搜索,則可能需要發送幾條不同的消息來發送它們。因此,我對如何構建響應思想是:
對於一個好的搜索:
{
"message": "OK",
"search": <insert search object here>
}
和一個壞的搜索:
{
"message: "Please double check your search in such and such fashion"
}
從本質上講,總是發送一個「消息」,但並不總是發送搜索實體,因爲如果他們的搜索以某種方式失敗,就不會創建搜索實體。
然後,即使他們的搜索條件已關閉,我也將始終返回200響應。或者,如果沒有結果。
這是否與REST背後的思想一致?還是應該將響應更改爲404或其他?
謝謝!
在我的情況下,這實際上是一個圖像搜索。用戶可以上傳圖片,並且可能不符合我們的搜索條件。這並不像他們忘了上傳圖片,他們只是包含了一個,由於各種原因,我們無法操作。所以,這有點模糊。不知道這是否會改變你的迴應 - – Pez
只是爲了跟進,經過多一點研究後,我跟着你的建議去了。當他們不上傳圖片或上傳不可接受的圖片時,我會返回400狀態碼。我不是經常在響應正文中返回「消息」,而是將此消息作爲X-Status-Reason添加到響應頭中。 – Pez
是的,這是有道理的,我相信這就是大多數REST服務的做法。 – Ergin