簡體   English   中英

沒有結果的REST搜索的HTTP狀態代碼

[英]HTTP status code for a REST search without result

我有一個用於搜索的REST端點。

GET /person?firstname=john&name=smith

結果,返回HTTP狀態代碼為200 OK的集合:

[
   {
      "id":11,
      "firstname":"John",
      "name":"Smith",
      "birthday":"1996-03-08"
   },
   {
      "id":18,
      "firstname":"John",
      "name":"Smith",
      "birthday":"1963-07-11"
   }
]

空搜索結果的正確HTTP狀態代碼和有效負載是什么?

  • HTTP狀態200 OK ,集合為空[]

  • HTTP狀態204 No Content且集合為空[]

  • HTTP狀態204 No Content為空的204 No Content

IMO第一種情況:

  • HTTP狀態200 OK ,集合為空[]

然后,您不必檢查204並使用返回的內容,這是一個空列表。

我建議:

HTTP Status 200 OK with a empty collection []

原因是204表示沒有內容可以發回,這與您的通話結果無關。

在您的情況下,有些東西可以退回。 這是一個Json結果,恰好由一個空集合組成。

更新:

根據HTTP協議定義:

10.2.5 204無內容:服務器已完成請求,但不需要返回實體,可能要返回更新的元信息。

和:

204響應必須不包含消息正文,因此始終由標頭字段之后的第一個空行終止。

在設計Web應用程序時,這是一個慣例問題。 我要走200英鎊,帶空的收藏夾。 因為:

  • 證明您的API確實會返回響應
  • 在客戶端處理200會容易得多,因為我假設您正在使用Javascript,而其他響應代碼可能會向您拋出錯誤

暫無
暫無

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

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