关于

频道

JSON:API 是

编辑

此规范有四位活跃编辑

以下荣誉编辑不再活跃

历史

JSON:API 最初由 Yehuda Katz 于 2013 年 5 月起草。此第一个草案是从 Ember Data 的 REST 适配器隐式定义的 JSON 传输中提取出来的。

总的来说,Ember Data 的目标是消除每个应用程序都需要编写特定代码来与以明确定义的方式进行通信的服务器进行通信的需求。

某些服务器,如 Firebase、Parse 和 CouchDB,已经为客户端定义了严格的通信协议,并且非常适合 Ember Data。相比之下,用 Rails、Node 和 Django 编写的服务器往往以“REST 风格”编写,但缺乏为直接插入客户端代码所需的精确度。

Ember Data 中的 REST 适配器隐式地定义了一个协议,自定义服务器可以实现该协议以获得所有资源的直接插入客户端。 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 目标属性也被删除。它可能会在未来的次要版本中恢复。
  • 2020-08-20: 1.1 发布候选版本 2 发布。
  • 2018-12-01: 1.1 发布候选版本 1 发布。
  • 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: 草案的初始版本发布。