前言:
在日常web 开发中,最常见的是HTTP 请求,随着项目的发展,引入了REST API 规范。

所以一套简化开发结构清晰符合标准易于理解易于扩展让大部分人都能够理解接受的接口风格就显得越来越重要,而 RESTful 风格的接口 (RESTful API)刚好有以上特点,就逐渐应运而生。

 如果简单介绍REST的话,大可以去查看官网。还会介绍另外一种设计风格也就是GraphQL API

在国内软件开发过程中比较少涉及这类涉及风格。

REST

REST,全名 Representational State Transfer (表现层状态转移),
他是一种设计风格一种软件架构风格
而不是标准,只是提供了一组设计原则和约束条件

虽然REST 提出来很长时间了。并不是一种标准,很多开发的同学或多或少对这种了解并不是很多。下面介绍一下REST 相关的名词解析。也在开发的过程中用到过,但不清楚,原来这就是REST。

RESTful

RESTful 只是转为形容詞,就像那么 RESTful API 就是满足 REST 风格的,以此规范设计的 API。

RESTful API
我们常见的 API 一般都长这样子:
image.png

而 RESTful 风格的 API 却长这样子:
image.png

关于 GraphQL

GraphQL是 Tapjoy 用于其公共 API 的 API 标准。GraphQL 是 API 的查询语言规范,最初由 Facebook 构建。它包含了各种概念,包括:

类型化和内省模式。该模式描述了 API 的具体类型和关系,所有这些都可以通过内省来发现。

稀疏数据集。客户仅在需要时请求他们需要的数据。

分层数据。API 的结构反映了响应的结构,允许通过层次结构在关系之间进行遍历。

批量请求。客户端批量请求多条不相关的数据,无需单独的 API 请求。

为什么选择 GraphQL?

Tapjoy 选择 GraphQL 是因为它为我们的合作伙伴以及他们的各种集成方式提供了更大的灵活性。控制在单个请求中提取哪些数据和关系的能力是一项强大的功能,它允许 Tapjoy 提供镜像并由我们自己的内部仪表板使用的 API。

通过将我们自己的内部 API 与面向合作伙伴的 API 进行整合,我们能够提供更先进的 API,该 API 可以随着我们业务的发展而不断发展。

总结:
不管是RESTful API还是 GraphQL API 都不是标准,提供是一种通用的设计规范,只是提供了一组设计原则和约束条件。结合项目的使用场景和业务需求做相应的设计及遵守一套相应的规范。

叶剑飞雪公众号

参考文献:

GitHub REST API 文档

Introduction to GraphQL


叶剑飞雪
137 声望9 粉丝