iOS 的 GraphQL 客户端库

GraphQL client libraries for iOS

我有一个 GraphQL 服务,我需要从 iOS 应用程序中访问它,我正在尝试调查针对此目的的客户端库的选项。我最初的印象是那里没有太多好的选择,我对此感到有点惊讶,因为 Facebook 的移动应用程序总是被引用为 GraphQL 本身的动机 material。

以下是我目前对我的选择的理解。我的问题是:我忽略了哪些客户端库选项?我也很好奇,如果您想象一下 iOS 的理想 GraphQL 客户端库,它会是什么样子?

  1. 直接使用 Alamofire、AFNetworking 或 NSURLSession,传入精心制作的 Query Documents 并通过代表结果 JSON 的 Dictionary 进行探索,或
  2. Chester
  3. GraphQLicious
  4. Swift-GraphQL

我不会手动构建查询,我认为 Chester 和 GraphQLicious 都适合您。 如果我必须想象一个完美的库,它不仅应该构建查询,而且应该将结果解析为 Swift 个对象。正如您可能从 JSON 解析库中了解到的那样,这不是一项小任务,这就是为什么大多数 GraphQL-Builder 库不这样做的原因。

披露:我是 GraphQLicious 背后的人之一

很久以前就有人问过这个问题 - 我认为今天对此的标准答案是使用 Apollo Client

它使用与网络上的 Apollo Client 类似的 API,并且有几个非常好的功能:

  • 基于 GraphQL 查询和变更的静态类型生成
  • 标准化缓存
  • 查询观看和自动UI更新
  • 手动商店更新

还没有到1.0,但总体来说是一个超级有前途的项目!

这里有一些可以帮助您入门的资源: