项目配置
使用 Apollo iOS SDK 结构化 GraphQL 应用程序
Apollo iOS 1.0 可以支持由多个模块组成的复杂应用程序 和 单个模块的应用程序目标。
Apollo iOS SDK 的代码生成引擎和模块化结构为您提供了灵活的配置选项,使您能够根据个人喜好结构化项目。
本文涵盖了 Apollo iOS 生成的 模型、组成 Apollo iOS SDK 的 模块 以及如何在您的项目中结构化这些组件。
生成的模型
Apollo iOS 为您生成以下组文件:
- 操作模型: 查询、 变体、 订阅 和 片段 在您的 GraphQL 文件中定义的模型。
- 模式类型: 您的 GraphQL 模式 的共享类型和元数据(例如对象、枚举、输入对象)。
- 测试模拟: 用于您的模式类型的测试模拟对象,您可以使用它们在测试中创建 操作 模型。
操作模型
Apollo iOS从您定义GraphQL操作(即,查询、mutations、订阅和片段)的文件生成操作模型。
操作模型是代表您的GraphQL操作的类,您可以使用它(通过ApolloClient
)来发送GraphQL请求。ApolloClient
。
每个操作模型都包含一组类型安全的响应模型对象,表示该操作的执行结果。当ApolloClient
成功执行GraphQL请求时,它返回对应操作的响应模型实例。
要了解更多关于GraphQL操作的信息,请查看定义操作。
模式类型
GraphQL方案使用类型系统来定义可用的数据的形状。GraphQL操作(以及您生成的操作模型)依赖于模式来了解如何匹配操作以访问服务器数据。
Apollo iOS生成一系列类型,这些类型提供了关于您的GraphQL方案中每个类型的属性和元数据(例如,对象、接口、联合、枚举、输入对象等)。您的生成操作模型引用这些共享方案类型以提供类型信息,无需重复代码。
测试模拟
Apollo iOS允许您生成测试模拟对象,这些对象可以用于您的测试目标。这些模拟允许您为测试创建操作模型。
有关更多详细信息,请参阅测试模拟。
项目结构
当将Apollo iOS添加到新项目时,决定如何结构化您的项目是第一步。此步骤的大部分工作是确定生成的GraphQL模型的位置。
您可以将您的GraphQL模型包含在主应用程序目标中,分散到多个模块,或将其公开为独立模块,这样多个应用程序都可以使用。根据项目的需求和限制,您将配置代码生成引擎并链接到Apollo iOS库。
在使用Apollo iOS时,您需要在项目结构上做出三个主要决定:
- 您的项目将如何与Apollo在单个目标或多个模块中交互?
- 您应该使用哪个
moduleType
方案? - 您的生成操作模型应位于何处?
在接下来的几页中,我们将涵盖这些问题以及每项选择的可能选项。