Apollo iOS 简介
一个强类型、以Swift为主导的GraphQL客户端
Apollo iOS是开源 GraphQL客户端,是用Swift编写的本地客户端应用程序。
Apollo iOS执行查询和变更操作,使用GraphQL服务器,并将结果作为预生成和操作特定的Swift类型返回。这意味着Apollo iOS可以为您处理符合规范的GraphQL请求,解析JSON响应,并手动验证和类型转换响应数据。
Apollo iOS还包括针对GraphQL数据的缓存机制,使您能够直接针对本地缓存的数据库执行GraphQL查询。
主要功能
Apollo iOS有三个主要功能:
同时使用,这些特性显著提高了请求、使用和持久化GraphQL数据的过程。
代码生成
Apollo iOS根据您定义的GraphQL操作,生成对象,为您的代码提供了一种类型安全的操作使用方式。
每个生成的操作对象都包含了一套强大的、强类型化的模型,用于该操作响应。这些模型允许您以类型安全和灵活的方式访问您的GraphQL响应数据。
由于生成的响应模型是与操作特定的,它们仅包含该操作内GraphQL字段的属性。这意味着您可以在编译时依靠Swift类型检查器标记数据访问错误。
Apollo iOS还为您生成GraphQL的片段模型。在您的操作特定模型 alongside 操作模型中使用片段模型,允许您在多个GraphQL操作之间共享通用模型。
Apollo iOS还为您生成模式输入、枚举和自定义标量类型的模型,所有这些都有助于提高您的代码的类型安全性。
标准化缓存
Apollo iOS的标准化缓存是专为GraphQL设计的。它将操作结果标准化以构建客户端数据缓存,并在执行每个操作时进行更新。
Apollo iOS的缓存去重GraphQL响应,将来自单独GraphQL操作的数据合并到标准化对象中。这使得您的缓存尽可能少地与您的后端保持最新。
操作之间对象的标准化意味着您的缓存充当您的图的真相来源,使您的应用能够实时响应变化。
要了解更多关于标准化过程的信息,请参阅我们的博客文章去神秘化缓存标准化。
网络和GraphQL执行
Apollo iOS提供了一种网络API,可以帮助您针对任何符合规范的GraphQL服务器执行GraphQL操作。GraphQL执行管道会在标准化缓存中自动缓存响应数据,并使用您生成的类型安全操作模型返回响应。
Apollo iOS处理与GraphQL相关的所有繁重工作,包括:
- 构建符合规范的GraphQL网络请求
- 在标准化缓存中检查现有数据
- 执行网络传输
- 解析和验证GraphQL网络响应
- 将GraphQL错误公开为类型安全的Swift错误
- 将响应数据写入标准化缓存
- 将响应数据映射到类型安全的、生成的操作模型
相关库
Apollo Kotlin 是一个用于原生 Android 应用程序的 Java 和 Kotlin 编写的 GraphQL 客户端,同时也支持 Kotlin Multi-Platform集成。
Apollo Client's integration for React 也与 React Native在 iOS 和 Android 上都可以运行。