GraphQL 入门指南:理解 GraphQL 的核心概念和基础知识

本文从 GraphQL 的基本概念、优势等方面介绍了 GraphQL 的入门知识,帮助读者了解和掌握 GraphQL 的基本使用。

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

GraphQL 入门指南:理解 GraphQL 的核心概念和基础知识

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

GraphQL 是什么

GraphQL 是一种用于 API 的查询语言,也是一个基于服务端的运行引擎。

GraphQL 提供了一套完整的规范和描述用于查询 API,服务端能够准确地返回给客户端需要的数据且没有任何冗余的数据。GraphQL 本质是 API 查询语言,用于前后端数据的查询;开发者可以自定义数据模型、查询规范和查询参数,并在一个请求中就可以获取所有想要的数据。这不像 RESTful 请求,可能需要请求多次才可以获取需要的数据。所以在 GraphQL 请求中,开发者对于返回的结果是有确定性的。

GraphQL 规范

数据模型

数据模型用于定义对象实体的数据结构以及对象之间的关系,比如对象有哪些属性,下图表示一个完整的数据模型,定义了一个查询 Query 和两个返回对象 Header 和 Query,这两个对象分别包含的属性字段和数据类型也分别定义了,这些就会用于实际的 GraphQL 的请求中。

GraphQL 是什么
数据模型

字段

在 GraphQL 的查询中,服务端返回给客户端的请求结果包含了预期的结构,就是准确地返回每个请求的字段结果数据。服务端响应的字段和请求的字段是一致的,这个就是 GraphQL 最显著的一个特性,开发者是有预期的。如下图所示,按照上面定义的例子,请求了两个字段,返回了两个字段的结果。使用的参考工具是:APOLLO

GraphQL 是什么
字段

参数

在查询数据的时候,可以传递参数进行查询,比如下图中 person 以 id 参数来查询相关的属性数据,在下方的变量中可以输入实际的 id 进行查询。使用的参考工具是:APOLLO

GraphQL 是什么
参数

运行示例

示例一:根据数据模型输出完整的数据结果

GraphQL 是什么
运行示例

示例二:只输出选择的属性

GraphQL 是什么
输出属性

优势和劣势

了解的 GraphQL 基本的一些概念和用法,简单分析一下使用 GraphQL 作为 API 查询语言的优劣势。

优势

  • GraphQL 只用一个数据源就可以查询所有数据,所有的请求都可以访问一个服务端点。
  • GraphQL 返回的结果响应准确地根据客户端的请求字段,减少客户端和服务端之间的干扰。
  • GraphQL 支持所有数据类型的定义和传输,包括请求中的参数传输。
  • GraphQL 现在拥有很多开源的工具平台以及插件和扩展。

劣势

  • 一些熟悉 RESTful 请求的开发者,可能需要花一段时间学习 GraphQL。
  • 对比 RESTful 接口开发,服务端开发者可能会需要花更多时间开发比较容易维护的数据模型。

使用 Apifox 调试 GraphQL

打开 Apifox ,新建一个 HTTP 项目,在项目中新建一个 POST 请求,然后填写请求 URL,这个请求的 URL 就是你的 GraphQL 服务器地址,例如http://localhost:3000/graphql,接着填写接口名称,在请求参数中依次选择【Body->GraphQL】后,保存即可。

GraphQL 是什么


接上一步,保存之后,我们来到“运行”页面,在该页面中,就可以输入你的 GraphQL 查询,并对 GraphQL 服务进行调试,例如:

query {
  author(id: "1") {
    id
    name
  }
}
使用 Apifox 调试 GraphQL


在调试时也可以使用变量的形式:Query:

query GetAuthor($authorId: ID!) {
  author(id: $authorId) {
    id
    name
  }
}


Variables:

{
  "authorId": "2"
}
使用 Apifox 调试 GraphQL

总结

GraphQL 还有更多好玩的功能和深入的一些用法,Apifox 目前也集成了 GraphQL 的调试功能,推荐大家尝试 Apifox。

Apifox