擴充功能與設定檔
JSON:API 規格提供了一種方法,可以使用擴充功能來定義基本規格未提供的功能。此外,它還提供了一種方法,可以使用設定檔在實作之間共享規格的特定用法。
一般來說,擴充功能提供了一種標準化功能的方法,這種功能並非廣泛需要到應該成為基本規格的一部分,但又足夠通用,可以讓社群受益於標準化。通常,這種功能也過於困難和/或非常規,以至於無法僅使用保留給實作的規格部分來實作(例如,實作可以將自己的成員添加到attributes
物件中,但不能將新成員添加到資源識別碼中)。
另一方面,設定檔是一種標準化基本規格的常用用法的方法,這些用法可以僅使用保留給實作的規格部分輕鬆實作(例如,處理分頁的常用方法)。
擴充功能和設定檔之間的一個主要區別是,擴充功能必須由客戶端和伺服器雙方協商一致並理解,而如果客戶端或伺服器不識別設定檔,則可以安全地忽略它。
以下列出了一些有用的擴充功能和設定檔。但是,擴充功能或設定檔不需要出現在下方才有效。任何人都可以使用自己的網域作為其 URI 來編寫和託管擴充功能或設定檔文件。
為了保持 JSON:API 作為反自行車棚工具的承諾,強烈建議實作者重複使用、改進和協作共同的擴充功能和設定檔,而不是因為微不足道或美觀差異而建立新的擴充功能和設定檔。
此頁面上列出的擴充功能和設定檔已由 JSON:API 規格編輯審閱,並被認為
- 與基本規格相容
- 能夠在沒有向後不相容性的情況下發展
- 廣泛可用
並非每個擴充功能或設定檔都能或應該出現在此頁面上。此列表會盡力維護。
擴充功能
- 原子操作
- URI:
https://jsonapi.dev.org.tw/ext/atomic
- 命名空間:
atomic
- 說明:此擴充功能提供了一種以線性和原子方式執行多個「操作」的方法。
- URI:
設定檔
- 游標分頁
- URI:
https://jsonapi.dev.org.tw/profiles/ethanresnick/cursor-pagination
- 說明:基於游標的分頁(又稱鍵集分頁)是一種常見的分頁策略,可避免「偏移量-限制」分頁的許多陷阱。
- URI: