簡體   English   中英

如果在 Rest Api 調用中沒有從數據庫中找到數據,則返回哪個 HTTP 狀態碼

[英]Which HTTP status code to return if there is no data found from database in Rest Api call

好吧,我有一個在 spring 啟動中開發的微服務,它調用外部數據庫來獲取結果,但現在有時它無法從外部數據庫中獲取結果,因為數據庫本身沒有數據,因為存在選擇性查詢從微服務觸發以從數據庫中獲取結果,因此在這些情況下,我應該返回正確的 http 狀態碼,我應該返回 http 狀態碼 204。請告知。

我應該返回 http 狀態碼 204

我目前的想法是“可能不會”。 204 No Content的規范中包含此注釋:

204 響應允許服務器指示該操作已成功應用於目標資源,同時暗示用戶代理不需要遍歷其當前“文檔視圖”(如果有)。

如果您有一個返回空文檔的 GET 請求,我更喜歡Content-Length為 0 的200 OK

選擇 2xx 還是 4xx 取決於您在響應正文中包含哪些信息:對於 GET,如果您要返回資源的表示,那么您應該返回 200。如果您要返回文檔描述錯誤,您應該返回 4xx 代碼之一。

哪個是正確答案取決於您的資源 model。 搜索不返回任何結果是完全合理的; 在這種情況下,返回空結果集的表示將需要 200。如果缺少數據意味着(語義)所請求的資源不存在(或更准確地說,沒有當前表示),那么您應該返回 404。

REST 並沒有告訴您其中哪一個是“正確的”——它只是為我們提供了一種通用語言來描述我們選擇的替代方案,以便通用組件可以理解正在發生的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM