GraphQL 的优缺点

本文将探讨 GraphQL 的优点和缺点,了解GraphQL 的优势和不足,以及是否适合你的应用程序。

用 Apifox,节省研发团队的每一分钟

GraphQL 的优缺点

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

GraphQL

GraphQL 是一种 API 查询语言和运行时,用于使用现有数据完成这些查询。它为您的 API 中的数据提供了完整且易于理解的描述,让客户能够准确地询问他们需要什么,更容易随着时间的推移发展 API,并启用强大的开发人员工具。

GraphQL

GraphQL 优点

  1. GraphQL 速度快,并且比较稳定,GraphQL 的操作是在数据层面的,所以比较快。
  2. GraphQL 可以获取更多的资源,当查询一个数据的时候,不止是这个数据,甚至可以很快地查询到数据引用的另一个数据。GraphQL 可以在单个请求中去获取尽量多的数据,并且在弱网状态下,GraphQL 依旧表现出色。
  3. GraphQL 是单端点查询,并在此端点中去完成所有的查询。
  4. GraphQL 的可持续性非常出色,无论是新字段、还是旧字段,它都能很好地去处理,可维护性也极佳。
  5. GraphQL 具有向下兼容的特性,就算是很久很久以前的功能,GraphQL 还是能很好地去兼容它,保证旧版本的正常运行,同时又不影响新功能的加入以及整体的稳定性。这样做的好处就是,不需要去担忧版本号问题了。
  6. GraphQL 具有强类型,在 GraphQL 的查询中,一个级别对应一个强类型,这个类型充当一个字段的描述。这样的好处就是,在查询之前,可以校验出错误并提示,方便定位问题,提高性能。
  7. 自省:可以查询 GraphQL 服务器支持的类型。这为工具和客户端软件创建了一个强大的平台,可以在这些信息的基础上构建静态类型语言的代码生成、我们的应用程序框架、Relay 或 GraphiQL 等 IDE。
  8. GraphQL 支持使用者去决定服务器支持的类型。这样的好处就是,给很多使用 GraphQL 的 工具或者端建立了一个比较成熟且强大的应用平台,通过这个平台,一些框架、工具得到不断地优化提升。

GraphQL 缺点

  1. GraphQL 无法完成深度查询,所以无法对于未知深度的数据进行一次性查询。
  2. GraphQL 具有非常死板的响应结构,你必须遵从这个结构去查询数据,或者自己添加一个转换器来转换。
  3. GraphQL 无法进行网络级别的缓存,你必须使用另外别的办法进行持久查询。
  4. GraphQL 默认没有上传文件的功能,GraphQL 也不接收文件类型的参数,但是你可以使用 REST 的方式进行上传文件,达到上传文件的目的。
  5. GraphQL 的执行是不可预测的,因为 GraphQL 太过于灵活了。
  6. 同样的一个简单的 API,GraphQL 会表现得很复杂,所以建议简单 API 使用 RSET。

Apifox 调试 GraphQL

写了一个 GraphQL 接口,我们使用 Apifox 这款 API 工具去调试一下:

新建 GraphQL 接口

  • 第一步:点击 新增按钮
  • 第二步:填入接口名称、URL、方法 POST
  • 第三步:点击 保存按钮
新建 GraphQL 接口

运行页传递数据

跳转到 运行页,然后进行操作

  • 第一步:Body 类型选择 GraphQL
  • 第二步:填入请求数据
{
    product(first: 2) {
        edges {
            node {
                id
                title
            }
        }
    }
}
  • 第三步:点击 发送按钮

然后就可以看到返回结果 Response 啦~~

运行页传递数据

关于 Apifox

  • 集成了API 文档、API 调试、API Mock、API 自动化测试 API 一体化协作平台
  • 拥有更先进的 API 设计/开发/测试工具
  • Apifox = Postman + Swagger + Mock + JMeter

欢迎体验一下,完全免费的哦:在线使用 Apifox

知识扩展:

了解更多 GraphQL 相关知识。