于10月8日至10日在纽约市加入我们,了解有关 GraphQL 联邦和 API 平台工程的最新技巧、趋势和新闻。参加2024年纽约市 GraphQL 升级峰会
文档
免费开始

代码生成


为您的 操作生成 对象,为您在 Swift 代码中构造操作和提供输入 提供一种类型安全的途径。

每个生成的 operation 都包含一组健壮、强类型化的模型用于它的响应。这些生成的模型帮助您在类型安全且灵活的格式中访问您的 GraphQL 响应数据。您不需要处理解析 JSON 响应或将需要手动转换的值的字典传递来,您也不需要自己编写模型类型,因为模型是从您定义的 GraphQL 操作生成的。

由于生成的响应模型是 operation 特定的,它们包含的属性 只有用于其对应 GraphQL 操作所包含的 的。这意味着您可以通过编译时数据访问错误的类型检查器来依赖 Swift。

查看我们关于如何开始使用 Apollo iOS 代码生成的过程。

GraphQL 源文件

为了生成模型, Apollo iOS 需要两个输入源:

  1. A GraphQL schema

GraphQL schema 是一个类型列表,包括您可以在这些类型上进行的 fields,以及可提出的问题。模式可以被视为一个 ,定义了可能的请求内容。

每个 都提供一个模式。您通常可以通过 查询从您的服务器获取模式,或者从 Apollo Studio

Apollo iOS 提供了工具,帮助您获取您的 。有关更多信息,请参阅 下载模式

  1. 一组 GraphQL 操作和片段

一个 GraphQL 操作 定义了与您模式交互的方式。一个 GraphQL 操作可以是 查询、一个 或一个 。所有操作定义了用于从模式中的类型中获取数据的一组 字段。操作定义确定您的 GraphQL 服务器提供响应将包含什么。

您的操作输入源还可以包括定义 GraphQL 片段 的文件。这些 可以在操作定义中被引用。

为了使 Apollo 能够生成有用的模型,您必须定义至少一个操作。这告诉我们您想获取什么数据。

有关 GraphQL 操作定义的更多信息,请参阅 定义操作

所有您指定的作为输入源 的 GraphQL 操作文件将合并成一个单独的 GraphQL 定义在一个文件中,在所有操作输入源中都是可用的。 这意味着操作和片段名称必须在所有输入源中是唯一的。

Apollo iOS 将您的模式中的类型信息与您的 操作 定义相结合,以生成模型。该模式提供了生成安全类型模型所需的信息,而您的操作定义了生成模型的形状和结构。

Apollo iOS 代码生成引擎解析您的模式和 ,并确保您的操作对于提供的模式是有效的。它生成包括创建安全类型操作所需的所有信息的模型,然后将这些操作作为网络请求发送,并将响应数据解析到安全类型响应模型。

在生成的模型形状及其如何在项目中使用方面有许多选择。这可以通过以下 代码生成配置 来指定。

最基本的方式来考虑这些选项是以下等式:

模式 + 操作 + 配置 = 代码

如果您没有任何 操作,我们的代码生成器将不知道您想要获取哪些信息,因此无法生成发送请求或解析结果的代码。如果您不提供模式,我们的代码生成器将不知道您的操作是否有效或您想要获取的任何 字段 返回的类型,因此无法生成类型安全的模型。如果您不提供配置,我们的代码生成器只能对生成的代码做出一般性的假设,这可能不符合您的需求。如果您提供所有三者,可以进行适当的检查并生成适用于您的项目的类型安全代码,以精确的方式生成。

运行代码生成

可以通过两种方式之一运行 Apollo 代码生成引擎

Codegen CLI

这是大多数用例推荐的方法。

Codegen CLI 是开始使用 Apollo iOS 最简单的方式。正确的 CLI 版本会自动与我们的 SPM 和 Cocoapod 包捆绑在一起,因此您无需担心安装或更新。

Swift Scripting

对于复杂用例,您可以在自己的 Swift 项目中包含我们的代码生成引擎。

要了解更多关于从 Swift 代码运行代码生成的信息,请查看 在 Swift 代码中运行代码生成

上一页
客户端指令
下一页
Codegen CLI
评价文章评价在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,商业名称Apollo GraphQL。

隐私政策

公司