本文将对 GraphQL 的概念及起源进行介绍,并提供详细的学习指导意义以及示例代码。
引言
GraphQL 是 Facebook 在2012年推出的一种数据查询语言,旨在解决 REST API 在多次请求时出现的问题,包括过度获取数据和数据结构不匹配。GraphQL 可以简化查询过程,减少超取数据,同时保持请求和响应之间的一对一联系。近年来,GraphQL 在前端领域越来越受欢迎,我们会在本文中深入探讨它。
概念
GraphQL 是一种由 Facebook 开发和开源的技术,旨在提高 API 的效率。它为客户端提供了更多的灵活性,并使 API 更加简单、可预测和可维护。GraphQL 通过定义类型、查询和变异,允许开发人员从 API 中提取所需的精确数据。
GraphQL 存在三种类型:
- Scalar types:标量类型,即原始类型,包括 String、Int、Float、Boolean 和 ID。
- Object types:对象类型由标量类型和其他对象类型组成。每个对象都有一组字段,这些字段可能是对象、标量类型或枚举类型。
- Enumeration types:枚举类型包括可以取一组固定值的标识符,如颜色、方向等。
GraphQL 的另一个特点是,与 REST API 不同,它不会返回完整的数据结构。客户端可以指定它需要的数据字段。GraphQL 使得前后端开发者能够更加有效地协调。
起源
GraphQL 是由 Facebook 设计的,初始版本是为了解决移动App上信息流的数据请求问题。
REST API 通过 HTTP 协议与客户端进行通信。但是,当客户想要获取不同的数据时,必须使用多个HTTP请求来获取不同的数据块。这会导致大量数据的传输和不必要的显示。随着应用程序界面的不断增长,这种方式不再是可执行或可优化的方案。
因此,在设计 GraphQL 时,Facebook 的工程师们将优化焦点转向了服务端对传输的数据的处理方式。GraphQL 还通过对查询进行分析并根据需要返回数据,显著增加了速度。
如何学习 GraphQL
要学习 GraphQL,首先要学会使用它,并熟悉开发中常用的操作和方法。
安装 GraphQL API
首先,你需要安装 GraphQL API。你可以使用现有的 GraphQL 服务来尝试,也可以使用框架自己设计 GraphQL API 然后使用自己的 API 进行实践。现在,我们选择一个免费的,名叫 GraphQLHub 的平台进行实践。
确定 Queries 和 Mutations
要使用 GraphQL,你需要了解 Queries 和 Mutations。Queries 是用于从服务端请求数据的操作,而 Mutations 是用于在服务端进行修改的操作。
查询操作可以运用以下格式:
------ ---------- -- --------- ---- ------- - -
查询操作可以带有参数,形如:
------ ------------------- --------- -- --------- ---- ------- - -
最后,Mutation 的格式类似于以下操作。
--------- ------------------- --------- -- --------- ---- ------ ----- ------- - -
使用 GraphQL Playground
GraphQL Playground 是一个免费的开源工具,可用于在 Web 浏览器中玩耍 GraphQL。可以使用 Playground 查询数据,了解查询变化,数据处理的方法,甚至使用这个工具在框架内的实践。
示例代码
下面的示例代码展示了如何使用 GraphQL API 完成基本的查询操作。首先,我们需要使用 Node.js 环境,然后安装 graphql-request 和使用平台上的 GraphQL API。具体支持的平台可以使用 GraphiQL 或者其他类似的工具来查询。
----- - -------------- --- - - -------------------------- ----- -------- - ------------------------------------ ----- ------- - -- ----- ------ - --- ----------------------- - ------- -- ----- ----- - --- - ------ ------ - -------------- -- ----- --- --- ---- -- ------ ---- - -- - ---------- ----- - - -- --------------------- ---------- -- -------------------------------- ---------- ----
结论
GraphQL 是一个强大的工具,可帮助前端和服务端开发人员快速创建 API。GraphQL 的主要优点是灵活性、可靠性和易于使用。随着它的普及,我们预计所有现代应用程序开发中都会使用 GraphQL,同时,这个技术也在不断发展和进步。希望本文对你对学习 GraphQL 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670cb5595f551281025b7213