GraphQL 架构

2025年3月17日 | 阅读 3 分钟

让我们看看 GraphQL 的架构,以了解 GraphQL 如何在 HTTP 客户端中使用,尤其是在 Web/移动应用中。

GraphQL 是以规范的形式发布的。该规范描述了 GraphQL 服务器的行为。它提供了一些处理来自客户端的请求和来自服务器的响应的指南,例如支持的协议、服务器接受的数据格式、服务器响应的格式等。

客户端向 GraphQL 服务器发出请求。这个请求被称为查询。当客户端请求查询以与服务器通信时,GraphQL 的传输层可以与任何可用的网络协议连接,例如 TCP、WebSocket 或任何其他传输层协议。

GraphQL 服务器不在乎你使用哪个数据库。它对数据库是中立的。你可以使用关系数据库或 NoSQL 数据库。

GraphQL 中的客户端-服务器流程

  • GraphQL 查询不是用 JSON 编写的。当客户端发出“POST”请求以向服务器发送 GraphQL 查询时,此查询将作为字符串发送。
  • 服务器接收并提取查询字符串。之后,服务器根据 GraphQL 语法和图数据模型(GraphQL 模式)处理并验证 GraphQL 查询。
  • 与其他 API 服务器一样,GraphQL API 服务器也调用数据库或其他服务,并检索客户端请求的数据。
  • 之后,服务器获取数据并以 JSON 对象的形式将其返回给客户端。

如何构建 GraphQL 服务器?

要在我们的项目中使用 GraphQL,我们必须构建 GraphQL 服务器。你可以使用你选择的任何编程语言来完成它。

GraphQL 服务器有三种常见的架构模型。

  • 带有连接数据库的 GraphQL 服务器
  • 与现有系统集成的 GraphQL 服务器。
  • 一种混合方法,包含连接的数据库和现有系统的集成

带有连接数据库的 GraphQL 服务器

这种架构设置主要用于新项目。在这种架构设置中,GraphQL 服务器与数据库集成。当客户端发送查询时,服务器读取请求的查询并从数据库中获取数据。此过程称为解析查询。解析查询后,响应将以官方 GraphQL 规范格式返回给客户端。

GraphQL Architecture

在上面的架构中,你可以看到 GraphQL 服务器和数据库集成在单个节点上。客户端通过计算机/移动设备通过 HTTP 发送查询与 GraphQL 服务器通信。收到查询后,GraphQL 服务器处理请求,从数据库中检索数据并将其返回给客户端。

带有连接数据库的 GraphQL 服务器的关键点

  • 这种架构设置用于简单的新项目。
  • 它使用实现 GraphQL 的单个 Web 服务器。
  • 此模型使用解析查询。
  • 在此模型中,服务器解析查询并使用从数据库中获取的数据构建响应。

与现有系统集成的 GraphQL 服务器。

这种架构模型适用于拥有复杂项目、具有遗留基础架构和许多不同 API 的公司。在这种架构模型中,GraphQL 可用于合并现有系统中的微服务、遗留基础架构和第三方 API,并隐藏数据获取逻辑的复杂性。服务器不在乎你使用哪个数据库。它可能是关系数据库或 NoSQL 数据库

GraphQL Architecture

在上面的架构中,你可以看到 GraphQL 服务器充当客户端和现有系统之间的接口。

一种混合方法,包含连接的数据库和集成系统

这种架构模型是上述两种方法的组合:带有连接数据库的 GraphQL 服务器和与现有系统集成的 GraphQL 服务器。在这种架构模型中,当服务器收到查询时,服务器会解析收到的查询,并从连接的数据库或集成的 API 中检索数据。

GraphQL Architecture

上图是混合方法模型的表示。