GraphQL 漫谈

本文将对 GraphQL 的概念及起源进行介绍,并提供详细的学习指导意义以及示例代码。

引言

GraphQL 是 Facebook 在2012年推出的一种数据查询语言,旨在解决 REST API 在多次请求时出现的问题,包括过度获取数据和数据结构不匹配。GraphQL 可以简化查询过程,减少超取数据,同时保持请求和响应之间的一对一联系。近年来,GraphQL 在前端领域越来越受欢迎,我们会在本文中深入探讨它。

概念

GraphQL 是一种由 Facebook 开发和开源的技术,旨在提高 API 的效率。它为客户端提供了更多的灵活性,并使 API 更加简单、可预测和可维护。GraphQL 通过定义类型、查询和变异,允许开发人员从 API 中提取所需的精确数据。

GraphQL 存在三种类型:

  1. Scalar types:标量类型,即原始类型,包括 String、Int、Float、Boolean 和 ID。
  2. Object types:对象类型由标量类型和其他对象类型组成。每个对象都有一组字段,这些字段可能是对象、标量类型或枚举类型。
  3. 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