Apollo iOS 是一个用 Swift 编写的强类型缓存 GraphQL 客户端
它允许您针对 GraphQL 服务器执行查询和 Mutation,并以针对查询特定的 Swift 类型返回结果。这意味着您不需要处理解析 JSON,或传递字典并手动将值类型转换为正确的类型。您也不需要自己编写模型类型,因为这些是从您的 UI 使用的 GraphQL 定义中生成的。
由于生成的类型是针对查询特定的,您只能访问实际在查询中指定的数据。如果您没有请求一个字段,您将无法访问相应的属性。实际上,这意味着现在您可以依靠 Swift 类型检查器来确保数据访问错误在编译时显示出来。使用我们的 Xcode 集成,您可以方便地同时处理 UI 代码和相应的 GraphQL 定义,并且它甚至会验证您的查询文档,并在行内显示错误。
Apollo iOS 不仅在 GraphQL 服务器上运行您的查询:它会将查询结果规范化以构建客户端数据缓存,这会随着进一步的查询和 Mutation 保持更新。这意味着您的 UI 始终内部一致,并且可以通过所需的最小查询数量与服务器上的状态保持完全同步。
这种模型与值语义、单向数据流和自动一致性管理相结合,导致了一种非常强大而优雅的编程模型,您可以使用它来消除常见的粘合代码并大大简化应用程序开发。
入门
如果您是全新的 Apollo iOS 用户,我们推荐您阅读我们的入门指南。
版本发布与变更日志
所有版本发布均已收录,我们还维护一个变更日志,详细记录了库的所有变更。
路线图
《路线图》是描述本项目下一个重大步骤或里程碑的高级文档。我们总是欢迎特性请求和社区贡献。
贡献
该项目使用 Xcode 14 和 Swift 5.7 进行开发。
如果您打开 Apollo.xcodeproj
,应该在您的 Mac 或 iOS 模拟器上能够运行 Apollo
、ApolloSQLite
和 ApolloWebSocket
框架的测试。仅限 macOS 上运行 ApolloCodegenLib
测试。
部分测试跑通了一个针对提供 Star Wars 示例模式的简单 GraphQL 服务器(请参阅该处的安装说明)。
如果您想贡献力量,请参考Apollo 贡献指南。
维护者
谁是 Apollo?
Apollo 开发开源软件和图平台,以统 谐应用和服务中的 GraphQL。我们助您加快交付速度,通过
- Apollo Studio – 一个免费的端到端平台,用于管理您 的 GraphQL 生命周期。在托管注册表中跟踪您的 GraphQ l模式,以创建图中的所有内容的真实来源。 Studio 提供了一个 IDE(Apollo Explorer),以便您可以探索数据、共同协作编写查询、观察使用情况,并安全地进行模式更改。
- Apollo Federation – 构建分布式图的行业标准开放架构。使用 Apollo 的网关,从多个子图中组合统一的图,确定查询计划,并跨服务路由请求。
- Apollo Client – 最受欢迎的网页 GraphQL 客户端。Apollo 还开发和维护Apollo iOS 和 Apollo Kotlin。
- Apollo 服务器 – 一种成熟可用的 JavaScript GraphQL 服务器,它可以连接到任何微服务、API 或数据库。与所有流行的 JavaScript 框架兼容,并可在无服务器环境中部署。
了解如何在 Apollo 中构建
查看Odyssey 学习平台,这是开始您的 GraphQL 之旅、观看视频和交互式代码挑战的完美之地。加入Apollo 社区,与 GraphQL 社区互动并获得技术支持。