關於
溝通管道
JSON:API 是
- 在 Twitter 上的 @jsonapi
- Freenode IRC 上的 #jsonapi 頻道
- jsonapi 討論區
編輯者
本規格書目前有四位活躍的編輯者
以下榮譽編輯者已不再活躍
歷史
JSON:API 最初由 Yehuda Katz 於 2013 年 5 月起草。這個第一個草案是從 Ember Data 的 REST adapter 隱含定義的 JSON 傳輸中提取出來的。
一般來說,Ember Data 的目標是消除每個應用程式為了與以明確定義的方式進行通訊的伺服器通訊而需要編寫臨時程式碼的需求。
有些伺服器,例如 Firebase、Parse 和 CouchDB,已經為客戶端定義了嚴格的通訊協定,並且非常適合 Ember Data。相比之下,使用 Rails、Node 和 Django 編寫的伺服器往往是以「REST 風格」編寫的,但缺乏插入式客戶端程式碼所需的精確度。
Ember Data 中的 REST Adapter 隱含地定義了一個協定,自定義伺服器可以實作該協定,以便為其所有資源獲得一個插入式客戶端。ActiveModel::Serializers 是一個 Rails 的概念驗證程式庫,它實作了 Ember Data 預期的序列化格式。
記錄的建立、更新和刪除是由 Ember Data 程式庫隱含定義的,並且與 Rails、Django 和 Node 開發人員廣泛使用的慣例非常接近。
此媒體類型的目標是在以下方面取得平衡
- 一種通用的媒體類型,可以適用於廣泛的用例,包括常用的關係類型
- 與現有的伺服器端框架實務的相似性(以及為了除錯的人類可讀性)
- 伺服器端易於實作
- 客戶端易於實作
本規格書於 2015 年 5 月 29 日達到穩定版本 1.0。
更新歷史
- 2022-09-30:1.1 正式版發布。
- 2022-08-22:1.1 發布候選版本 4 發布。
- 2020-10-01:1.1 發布候選版本 3 發布。
- 改進了連結物件。連結物件的
params
成員已被移除,以便更好地與其他 JSON 連結序列化保持一致。anchor
target 屬性也被移除。它可能會在未來的次要版本中恢復。
- 改進了連結物件。連結物件的
- 2020-08-20:1.1 發布候選版本 2 發布。
- 新增了擴展,並縮小了自 RC1 引入以來設定檔的範圍。
- 連結可以表示為RFC 8288風格的網路連結。
- 新增了一個新的
describedby
連結成員,以便實作者可以將描述文件(例如 OpenAPI 或 JSON Schema)直接併入他們的 API 中。 - 本地 ID 已被引入,以便客戶端可以建立與同一個請求尚未建立的資源的關係。
- 2018-12-01:1.1 發布候選版本 1 發布。
- 新功能包括:設定檔、「@-成員」和錯誤物件
type
連結。 - 圍繞以下方面進行了編輯上的澄清:查詢參數(它們的解析/序列化和保留的參數名稱)、特定 回應的適當狀態碼,以及即使
included
鍵的值為空陣列時也存在included
鍵。 - JSON:API 切換到建議使用駝峰式命名法 (camelCased names)。
- 新功能包括:設定檔、「@-成員」和錯誤物件
- 2015-05-29:1.0 正式版發布。
- 2015-05-21:1.0 發布候選版本 4 發布。
- 2015-03-16:1.0 發布候選版本 3 發布。
- 2015-02-18:1.0 發布候選版本 2 發布。
- 2014-07-05:1.0 發布候選版本 1 發布。
- 2013-07-21:媒體類型註冊已向 IANA 完成。
- 2013-05-03:草案的初始版本發布。