发布于 2026-01-06 0 阅读
0

Apollo GraphQL平台简要概述

Apollo GraphQL平台简要概述

GraphQL 是一种用于 API 的查询语言,也是一个运行时环境,用于使用现有数据来执行这些查询。这项技术使得客户端能够请求他们真正需要的数据,不多不少。GraphQL 查询不仅可以访问单个数据源的属性,还可以轻松跟踪它们之间的引用关系。传统的 REST API 需要从多个 URL 加载数据,而 GraphQL API 只需一次请求即可获取应用程序所需的所有数据,这使得使用 GraphQL 的应用程序速度更快,即使在移动网络连接下也是如此。

正如您所知,npm 公司声称GraphQL 将在 2019 年成为一股不可忽视的技术力量。而开启 GraphQL 之旅的最佳方式莫过于使用最流行的客户端库——Apollo GraphQL

什么是 Apollo GraphQL?

Apollo 是 GraphQL 的一个实现,旨在满足构建数据驱动型应用程序的现代开发团队的特定需求。它采用敏捷、可扩展的方法,并格外注重避免修改现有的 API 和服务。该库尤其注重工具和工作流。Apollo GraphQL 平台由一系列开源组件、商业扩展和云服务组成。

阿波罗结构

来源:Apollo Docs

大部分核心组件都是开源的。

Apollo 是一家开源公司,专注于开发者真正需要的功能,其明确的使命是为所有人提供更优质的 GraphQL 体验。数百名开发者共同协作,开发 Apollo Client、Apollo Server 以及 Apollo 平台的其他组件,使其成为业界领先的 GraphQL 实现解决方案。

阿波罗平台

来源:阿波罗

Apollo Server是一个 JavaScript GraphQL 服务器,用于定义模式 (schema) 和一组解析器,这些解析器实现了该模式的各个部分。Apollo Server 具有可扩展性,这意味着插件可以接入请求管道的每个阶段。这是一个强大的特性,允许以附加包的形式实现自定义行为。Apollo Server 可与任何使用 GraphQL.js 构建的 GraphQL 模式配合使用,支持 AWS Lambda 等无服务器环境,并且是开源的,由社区维护。

Apollo Client是一款功能齐全的 GraphQL 客户端,用于管理应用程序中的数据和状态。它支持声明式编程风格,允许开发者将查询定义在 UI 组件中,而客户端则负责所有查询绑定、数据一致性、缓存等诸多事项。Apollo Client 还集成了 React、React Native 和 Vue 等主流视图框架。

Apollo iOS是一个用 Swift 编写的强类型 GraphQL 缓存客户端,适用于 iOS 平台。它允许在 GraphQL 服务器上执行查询和变更操作,并将结果以查询特定的 Swift 类型返回。这意味着您无需处理 JSON 解析或手动将值转换为正确的类型。模型类型由应用程序 UI 的 GraphQL 定义生成。

Apollo Android是一个 GraphQL 客户端,用于根据 GraphQL 查询生成 Java 模型,并提供类型安全的 API 来操作您的 GraphQL 服务器。虽然它主要面向 Android 设计,但您也可以在任何 Java/Kotlin 应用中使用它。

Apollo CLI是一个简单的命令行客户端,它将 GraphQL 客户端和服务器合并在一起,并提供诸如验证 GraphQL 模式、确保服务器操作的兼容性或为客户端类型安全生成静态类型等功能。

面向开发团队的解决方案

GraphQL 的核心在于提升协作效率。开发团队紧密合作开发 GraphQL API 可以取得最佳成果。为了促进这种协作,Apollo 提供了一些实用解决方案,例如:

  • 模式注册表- GraphQL 模式注册表,作为模式的中央真理来源,并添加了字段级使用统计信息等元数据。

  • 客户端注册表——用于跟踪每个已知模式用户(包括预注册用户和临时用户)的注册表。

  • 操作注册表——一个记录所有已知针对该模式的操作的注册表。

  • 追踪仓库——一个数据管道,用于存储针对您的模式执行的每项操作的详细日志。所有这些注册表协同工作,使您的开发团队能够充分了解 API。

  • 安全列表——将您的 API 限制为受信任的、预先注册的操作。Apollo CLI 会从客户端代码库中提取所有查询并将其存储在操作注册表中。此外,Apollo Server 插件会将预先注册的操作列表同步到服务器,服务器随后会拒绝本地副本中不存在的查询。

  • 模式验证- 它会根据生产环境中观察到的已知操作集来测试提议的模式,并针对每个重大更改返回受影响的客户端列表。

  • GraphQL Gateway是 Apollo Server 的一个配置,它包含一些插件,可以作为 GraphQL 网关使用。该网关将独立部署的“微模式”组合成一个相互引用的主模式,客户端看到的这个主模式与任何常规的 GraphQL 模式并无二致。为了响应查询,网关会构建查询计划,从每个上游 GraphQL 服务获取数据,并将所有数据重新组合成一个单一的结果。

如果您正在寻找最佳的GraphQL教程,请查看这篇文章

GraphQL 编辑器

文章来源:https://dev.to/graphqleditor/a-short-overview-of-apollo-graphql-platform-4pmg