概要

チャンネル

JSON:APIとは

編集者

この仕様書には4人のアクティブな編集者がいます。

以下の名誉編集者は、現在は活動していません。

履歴

JSON:APIは、2013年5月にYehuda Katz氏によって最初に drafted されました。この最初のドラフトは、Ember DataのRESTアダプターによって暗黙的に定義されたJSONトランスポートから抽出されました。

一般的に、Ember Dataの目標は、明確に定義された方法で通信するサーバーと通信するために、アプリケーションごとにアドホックなコードを記述する必要性をなくすことです。

Firebase、Parse、CouchDBなどの一部のサーバーは、すでにクライアント向けの厳密な通信プロトコルを定義しており、Ember Dataに適していました。対照的に、Rails、Node、Djangoで書かれたサーバーは、「RESTスタイル」で書かれる傾向がありますが、ドロップインクライアントコードに必要な精度が不足しています。

Ember DataのRESTアダプターは、カスタムサーバーがすべてのリソースのドロップインクライアントを取得するために実装できるプロトコルを暗黙的に定義しました。ActiveModel::Serializersは、Ember Dataが想定するシリアライゼーション形式を実装したRails用の概念実証ライブラリです。

レコードの作成、更新、削除はEmber Dataライブラリによって暗黙的に定義されており、Rails、Django、Nodeの開発者によってすでに広く使用されている規則に近いものでした。

このメディアタイプの目標は、以下のバランスを取ることです。

  • 一般的に使用される関係タイプを含む、幅広いユースケースで機能する汎用メディアタイプ
  • 既存のサーバーサイドフレームワークのプラクティスとの類似性(およびデバッグのための人間が読める形式)
  • サーバー側での実装の容易さ
  • クライアント側での実装の容易さ

この仕様は、2015年5月29日に安定版1.0に到達しました。

更新履歴

  • 2022年9月30日:1.1 正式リリース。
  • 2022年8月22日:1.1 リリース候補4 リリース。
    • 仕様と実装のセマンティクスの定義を正式化しました。
    • 拡張機能プロファイルの定義を改良しました。
    • 予期される応答と許可される応答、クエリパラメータなどに関する詳細を明確にしました。
  • 2020年10月1日:1.1 リリース候補3 リリース。
    • リンクオブジェクトを改良しました。リンクオブジェクトのparamsメンバーは、他のJSONリンクシリアライゼーションとの整合性を高めるために削除されました。anchorターゲット属性も削除されました。今後のマイナーリリースで復元される可能性があります。
  • 2020年8月20日:1.1 リリース候補2 リリース。
    • 拡張機能が追加され、RC1で導入されてからのプロファイルのスコープが縮小されました。
    • リンクは、RFC 8288スタイルのWebリンクとして表現できます。
    • 新しいdescribedby リンクメンバーが追加され、実装者は説明ドキュメント(例:OpenAPIまたはJSON Schema)をAPIに直接組み込むことができるようになりました。
    • ローカルID導入され、クライアントは同じリクエストによってまだ作成されていないリソースへの関係を作成できるようになりました。
  • 2018年12月1日:1.1 リリース候補1 リリース。
  • 2015年5月29日:1.0 正式リリース。
  • 2015年5月21日:1.0 リリース候補4 リリース。
  • 2015年3月16日:1.0 リリース候補3 リリース。
  • 2015年2月18日:1.0 リリース候補2 リリース。
  • 2014年7月5日:1.0 リリース候補1 リリース。
  • 2013年7月21日:IANAによるメディアタイプの登録が完了しました。
  • 2013年5月3日:ドラフトの初回リリース。