【问题标题】:GraphQL client libraries for iOS适用于 iOS 的 GraphQL 客户端库
【发布时间】:2016-08-14 21:44:44
【问题描述】:

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

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

  1. 直接使用 Alamofire、AFNetworking 或 NSURLSession,传入精心手工制作的 Query Documents 并探索代表生成 JSON 的 Dictionary,或
  2. Chester
  3. GraphQLicious
  4. Swift-GraphQL

【问题讨论】:

  • 我正在考虑使用 JavaScript GraphQL 客户端,例如 Apollo docs.apollostack.com/apollo-client 实现一些 JS 函数来处理网络调用、返回结果或错误等。将其与应用程序捆绑并使用 JavaScriptCore 运行它,这是很好的教程raywenderlich.com/124075/javascriptcore-tutorial
  • 更新:刚发现JavaScriptCore引擎中运行的JavaScript无法访问网络,那里没有http请求实现,只是纯ECMAScript,所以网络部分应该是本机代码,或者(不想这么说)JS 在隐藏的 WebView 中运行...我希望 Swift 中有成熟的 GraphQL 客户端实现,如果您找到了请告诉我...干杯。
  • 我今天早上才知道这个:github.com/apollostack/apollo-ios
  • 如果您正在寻找 Objective-C,请查看 github.com/funcompany/graphql-ios
  • 更新:Swift-GraphQL 已经两年没有更新了。

标签: ios json rest graphql


【解决方案1】:

这个问题是很久以前提出的 - 我认为今天的标准答案将是使用Apollo Client

它使用与网络上的 Apollo 客户端类似的 API,并具有一些非常好的功能:

  • 基于 GraphQL 查询和突变的静态类型生成
  • 规范化缓存
  • 查询监视和自动 UI 更新
  • 手动商店更新

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

以下是一些可以帮助您入门的资源:

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-01
      • 2017-09-04
      • 1970-01-01
      • 2016-03-24
      • 2016-07-03
      • 2019-12-16
      • 2020-06-19
      • 1970-01-01
      • 2018-04-05
      相关资源
      最近更新 更多