每个人都用过 HTTP 协议。在网页端,在 App 端,大部分的数据交换都基于 HTTP 协议,但你也许会听过其他的一些协议。
从《2023 全球 API 状况报告》里的数据,我们能看到全球的开发者使用最多的 API 协议:
可以看到REST在其中遥遥领先,那么什么是REST?要怎么使用呢?今天先给大家介绍比较常用的REST和GraphQL:
REST
REST 其实不是一种协议,REST 接口使用的网络协议是 HTTP。
HTTP 协议非常适合那些采用单向的请求 - 响应模式的应用,比如访问社交媒体上的照片或者新闻文章,但是它并不适合需要双方实时通信的应用,比如在线游戏或视频聊天。
REST 是在开发者使用 HTTP 协议时共同遵守的设计原则,是一种软件架构风格,它并不是一种硬性的技术标准。REST 风格 API 一般长这个样子:
如何调用
浏览器可能是最简单的 REST 接口调用工具。浏览器地址栏就是一个最原始的 GET 请求发起器,它会将 GET 返回的数据展示在网页里。
但是,要实现 POST、PUT、DELETE 等动作就要写代码了。当然,你也可以使用像 Apifox 这样的 API 工具,一键发起各种类型的 HTTP 请求。
GraphQL
在上面的 REST 接口里,我们需要预先定义好各种具体的操作的接口(获取所有用户,获取特定用户,按标签查询用户等),就像饭店里固定搭配的套餐。
而 GraphQL 是一种灵活的数据查询语言,让你可以像点餐一样精确地获取你需要的数据,好比你在餐馆里直接告诉服务员想要哪些食物,以及烹饪方式,而不是被迫点一份固定的套餐。
GraphQL 适用于那些需要大量互动、实时数据或者多层次数据的应用。比如社交媒体的实时消息更新、即时通讯或者数据可视化工具。它能够满足不同应用的各种需求,因为你可以在一个请求中包含多个查询,从而减少了网络请求的数量。
如何调用
当使用 GraphQL 进行数据调用时,你会构建一个查询(Query)来获取你需要的数据。这个查询看起来类似于一个 JSON 对象,你可以指定所需的字段和参数。以下是一个简单的 GraphQL 查询示例,假设我们要获取一个博客应用中的文章信息:
在这个查询中:
query 表示这是一个查询操作。article(id: 123) 表示我们想要获取一篇文章,其中 id 参数为 123。在大括号 {} 内,我们指定了想要获取的字段,如 title、content 和 author。在 author 字段下,我们还指定了作者的信息字段,包括 name 和 email。当发送这个查询到 GraphQL 服务器时,服务器会返回一个 JSON 响应,包含与查询匹配的数据。好比构建一个查询,指定你需要的数据字段,然后向服务器发送查询,并接收服务器返回的 JSON 响应以获取所需的数据。响应可能如下所示:
这个响应包含了我们所请求的文章的标题、内容以及作者的信息。所有数据都以嵌套的方式返回,与查询的结构一致。这种方式允许客户端精确地获取所需的数据,而不会浪费带宽和资源。
在 Apifox 中,可以直接使用 HTTP POST 方式发起 GraphQL API 请求。你只需要将 Body 类型指定为 GraphQL,将请求 JSON 写入 Query 即可。
你可以在 Query 中使用变量,将变量值写入 Variables 框,就可以更加便利地调用固定格式的 GraphQL 请求。
Apifox 作为先进的 API 设计/开发/测试工具,不断兼容市面上流行的 API 协议,让开发人员不必再为某个 API 协议而苦苦寻找接口调试工具。
Apifox = Postman + Swagger + Mock + JMeter
一个工具就可以解决 API 开发 → 调试 → 管理问题,让更多中国开发团队也能够体验到一流的一站式 API 管理方案。官方链接:http://apifox.com/b3guidexy