关于
频道
JSON:API 是
- @jsonapi 在 推特 上
- #jsonapi 频道在 Freenode IRC 上
- jsonapi 讨论论坛
编辑
此规范有四位活跃编辑
以下荣誉编辑不再活跃
历史
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 发布。
- 扩展 已添加,并且 配置文件 的范围在 RC1 引入后已缩减。
- 链接 可以表示为 RFC 8288 风格的 Web 链接。
- 一个新的
describedby
链接成员 已添加,以便实现者可以将描述文档(例如 OpenAPI 或 JSON Schema)直接集成到他们的 API 中。 - 本地 ID 已 引入,以便客户端可以创建与尚未由相同请求创建的资源的关系。
- 2018-12-01: 1.1 发布候选版本 1 发布。
- 新功能包括: 配置文件、 “@-Members” 和 错误对象
type
链接。 - 关于以下方面有一些编辑澄清: 查询参数(它们的解析/序列化以及保留的参数名称)、 特定 响应 的适当状态码以及 即使其值为空数组时
included
键的存在。 - JSON:API 转向了 推荐使用 camelCased 命名。
- 新功能包括: 配置文件、 “@-Members” 和 错误对象
- 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: 草案的初始版本发布。