基于 GraphQL 的 API 设计:一步步教程

GraphQL 是一种用于 API 设计的查询语言和运行时环境。 与 RESTful API 相比,它具有更大的灵活性,更适用于组合多个数据源,而不会出现过多的网络请求。在本文中,我们将介绍什么是 GraphQL,它的基本结构、如何编写 GraphQL schema 以及如何测试和使用 GraphQL API。

什么是 GraphQL?

GraphQL 是由 Facebook 开发的一种查询语言和运行时环境,它允许客户端精确地请求服务器上的数据,并且只获取需要的数据,这是 RESTful API 的优秀补充。 GraphQL 具有以下主要特点:

  1. GraphQL 允许客户端请求数据的字段数量精确匹配,减少不必要的加载。

  2. GraphQL 可以合并来自不同源的数据,使应用程序的编写更加灵活和便捷。

  3. GraphQL 允许开发人员使用强类型系统增强他们的应用程序的可靠性和可维护性。

安装 GraphQL

使用 GraphQL 前,需要确定您正在使用适当的开发工具。以下是在您的计算机上安装 GraphQL 的步骤:

  1. 打开终端。分别运行以下命令:
--- ------- -------
--- ------- ------- ---------------
--- -----
  1. npm install graphql 安装graphql。
  2. npm install express express-graphql 安装 Express 和 express-graphql 这两个所有提供GraphQL API所必需的库。
  3. npm start 启动你的项目。

编写 GraphQL Schema

在开发 GraphQL API时,需要编写schema。在 GraphQL API中,schema 用于定义 API 应该响应的所有可能查询以及查询应返回的数据类型。

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

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

将该 schema 传递给 GraphtQL 的 graphql-tools 库即可实现完整的 GraphQL API:

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

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

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

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

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

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

在代码中,我们首先编写了 schema,并创建了一些 mock 数据。然后,我们定义了查询解析器,并使用 Express 和 graphqlHTTP 库设置了服务器。现在,运行你的GraphQL语法即可。

测试 GraphQL API

GraphQL 提供了一个 web 控制器,称为 GraphiQL。GraphiQL 提供了一个友好的界面,可以让您测试和探索 GraphQL API。要打开 GraphiQL,请在浏览器中加载 API URL,并将 /graphql 附加到 URL 的末尾。

在 GraphiQL 中,您可以轻松地测试您的 GraphQL API。您可以列出所有可用的查询,输入请求,然后查看响应。例如,我们可以预期请求新引入的 book 查询将返回一个包含图书信息的对象。在 GraphiQL 中进行查询:

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

响应:

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

结论

在本文中,我们介绍了 GraphQL,指导如何通过使用 GraphQL 和其 schema 定义 API。GraphQL 具有更大的灵活性,更适用于组合数据源,并允许客户端精确地请求服务器上的数据。一旦您安装并设置好 GraphQL 的环境,在 GraphQL 应用程序中编写和测试 API 就会变得非常容易。始终记住在编写和测试时按照指定的 API schema 行事,以确保您的应用程序在期望的行为上有所不同。祝你好运!

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