使用 GraphQL 构建你的 Serverless API

引言

Serverless 架构是当今前端类应用中的一股强势势力,很多公司都倾向于使用 Serverless 架构来搭建应用。然而,为了构建一个符合需求的 Serverless API,你需要拥有扎实的编码能力和一定的项目经验,尤其是在前端中如何使用 GraphQL 构建 Serverless API。本文将向你介绍如何使用 GraphQL 构建符合要求的 Serverless API。

什么是 GraphQL

GraphQL 是一种用于 API 开发的数据查询语言,它使 API 请求更高效和准确,并能够减少响应体的大小,减轻服务器的压力。它由 Facebook 在 2015 年所开发,旨在解决 RESTful API 的种种问题。

GraphQL 定义了一种类型定义语言来描述数据模型,这个语言被称为 Schema,其描述了数据的类型、关系和查询规则。对于一个 GraphQL API,我们需要先对数据进行类型定义,然后实现相应的数据查询和修改操作。

为什么使用 GraphQL

与传统的 RESTful API 相比,GraphQL 在很多方面都有优越性:

  • 精确性。RESTful API 查询时往往需要多次请求才能得到我想要的数据,而 GraphQL 可以精准地获取所需数据,避免了无用查询。这样,GraphQL 的查询效率相较于 RESTful API 更高。

  • 灵活性。RESTful API 虽然功能全面,但需要事先定义好固定的返回数据结构和字段,而 GraphQL 查询时可以根据实际需要决定要查询那些数据和字段。

  • 统一API。GraphQL 的 Schema 对类型和查询的定义具有强大的线上编译功能,这使得整个 Web 应用程序最终可以使用一种唯一的 API,减少了前端程序员和后端程序员之间的沟通成本。

怎样使用 GraphQL

在使用 GraphQL 之前,你需要安装并配置 GraphQL,然后定义好 GraphQL Schema。安装的方法很简单,可以使用 npm install 命令进行安装。

定义 Schema

对于一个 GraphQL API,我们需要先对数据进行类型定义,然后实现相应的数据查询和修改操作。在这部分,我们仅讲述如何定义 Schema。Schema 中主要包含以下几个部分。

  • Type Definitions

Type Definitions 用来声明你的数据类型及它们之间的关系,它可以定义聚合对象、输入类型等。使用 GraphQL 的 type 属性来声明类型。

---- ------ -
  --- ---
  ----- -------
-
  • Query

查询数据是一个应用程序的主要功能。在 GraphQL Schema 中,Query 是用来声明查询类型和返回值类型的。这部分可以理解为提供的 API 接口。

---- ----- -
  ------- ---------
-
  • Mutation

Mutation 与 Query 类似,不同的是它是用于执行修改操作。Mutation 包含了输入类型 和返回类型并带有参数。

---- -------- -
  --------------- -------------- -------
-

使用 GraphQL 客户端

接下来,我们需要使用 GraphQL 客户端来与后端服务器进行通信。常用的 GraphQL 客户端有 Apollo 和 Relay。这里以 Apollo 为例,我们简单介绍以下几个操作。

  • 定义 API 对象

定义 API 对象包括定义类型、查询、和修改三个对象。

------ ------------ ---- ---------------

----- ------ - --- --------------
  ---- ------------------------
---

----- ----------- - ------- ---------- -- --------------
  ------
  ----------
---------------- -- ---------------

----- -------------- - ---------- ---------- -- ---------------
  ---------
  ----------
---
  • 发送查询请求

在前端通过使用 clientQuery 函数发送请求就可以向后端服务发送查询请求,GraphQL 中查询请求的格式与返回数据格式一致。

----- ----- - ----
  ----- ----------- -
    ------ -
      --
      ----
    -
  -
--

-------------------
  • 发送 Mutation 请求

在前端通过使用 clientMutation 函数发送请求就可以向后端服务发送修改请求。

----- -------- - ----
  -------- ---------------- ------------- -
    --------------- ------
  -
--

------------------------ - ----- - --- -- ----- ------- - ---

结论

在本文中,我们向大家介绍了如何使用 GraphQL 构建 Serverless API。首先我们介绍了 GraphQL 的优势,然后我们讲解了如何在前端中使用 GraphQL Serverless API,最后我们示范了访问 GraphQL API 的方式,从最简单的查询到 Mutation 请求,我们演示了使用 GraphQL 客户端如何发出请求查询数据以及修改数据。通过本文的学习,相信大家已经对 GraphQL 的使用有了更深刻的认识。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67389eb2317fbffedf11b5c6