JSON API:用 JSON 构建 API 的标准指南中文版

justjavac 发布于 2014/10/13 08:23
阅读 9K+
收藏 11

译文地址:https://github.com/justjavac/json-api-zh_CN

如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。

通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。

基于 JSON API 的客户端还能够充分利用缓存,以提升性能,有时甚至可以完全不需要网络请求。

下面是一个使用 JSON API 发送响应(response)的示例:


{
  "links": {
    "posts.author": {
      "href": "http://example.com/people/{posts.author}",
      "type": "people"
    },
    "posts.comments": {
      "href": "http://example.com/comments/{posts.comments}",
      "type": "comments"
    }
  },
  "posts": [{
    "id": "1",
    "title": "Rails is Omakase",
    "links": {
      "author": "9",
      "comments": [ "5", "12", "17", "20" ]
    }
  }]
}


顶级的 "links" 部分是可选的。 除去 "links" 部分,此响应看起来非常接近使用已经存在的 API 构建的响应。

JSON API 不仅可以用来构建响应,还包括创建和更新资源。

现状

本文档是一个正在进展的工作,在具体实现过程中将会有所改变。详细信息请查看现状页面。

MIME 类型

JSON API 已经在 IANA 机构完成注册。 它的 MIME 类型是 application/vnd.api+json

格式

在开始使用 JSON API 前,先查看一下JSON API 格式文档

更新历史

  • 2013-05-03:最初版本的草案。
  • 2013-07-22:媒体类型在 IANA 注册完成。

你可以使用 RSS 阅读器在这里订阅本提要的变更。

加载中
0
jonnykay
jonnykay
这是几个意思,就这么一点点啊
0
拉风的道长
拉风的道长
。。。木有看懂。。。
0
hantsy
hantsy

还是考虑一下 REST API 吧,能够做到了 Rechardson 成熟度模型 Level 3 就已经清晰了。

这个 JSON API 与 Rechardson Mature Model Level 3 有些类似,但目前似乎处理这些格式技术上有些困难,Java 中 Jackson 等都是直接与 Bean转换, 例如,Json API 提供的 posts array 的 id 表示方式和解析不是要手动实现?

maplewang
maplewang
谢谢提醒。
0
justjavac
justjavac

引用来自“jonnykay”的评论

这是几个意思,就这么一点点啊
还正在翻译中。
返回顶部
顶部