背景
我們的團隊提出了206 - Partial Content在 REST API 中使用狀態碼的想法,以指示GET大型資料集上的請求具有比回傳更多的內容,以允許 API 用戶進行分頁。這將是hasMore我們當前在回應正文中使用的標志的替代方案。
臨
- 使用已知狀態碼將允許 API 的用戶依賴通用 HTTP 語言,而不是學習我們的“專有”語言。
- 聲稱是否有更多結果是非常合適的信號。
騙局
- 由于所有請求都有一個
pageSize數字查詢引數,因此通信可能不正確,206 - Partial Content因為回應包含查詢引數請求的所有結果pageSize。 - 該宣告
206 - Partial Content通常用于位元組流,而不是集合串列。
問題
在哪些情況下可以或應該 206 - Partial Content用于回應 RESTfulGET請求而發送的結果集的分頁?
uj5u.com熱心網友回復:
我們的團隊提出了在 REST API 中使用狀態碼 206 - Partial Content 的想法,以表明對大型資料集的 GET 請求具有比回傳更多的內容,以允許 API 用戶進行分頁
這聽起來是個壞主意。
IANA HTTP 狀態代碼注冊表目前將RFC 9110標識為206 部分內容狀態代碼的權威定義。
206(部分內容)狀態碼表示服務器正在成功地完成一個范圍請求......
如果您還不熟悉范圍請求,請查看RFC 9110,第 14 節。但是簡短的版本:如果傳入的請求不包含Range 標頭,那么您就沒有范圍請求。
嘗試重新利用在網路域206上的通用檔案傳輸中具有特定含義的用途,以表明您的定制資源模型本地的某些含義,這會增加通用組件誤解正在發生的事情的可能性;您希望實作的收益不太可能超過風險。
TL; DR:正常 - 回傳帶有 200 狀態碼的回應,而這正是無聊的 Web 服務器會做的事情。
如果您試圖指示分頁;狀態碼是錯誤的工具。而是使用諸如 first/last/next/prev之類的鏈接關系來尋找Web Linking 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493480.html
