2016-04-21 140 views
13

我有一个GraphQL服务,我需要从iOS应用程序点击,我试图调查我的选项适用于面向此目的的客户端库。我最初的印象是,那里没有太多好的选择,我对此有点惊讶,因为Facebook的移动应用程序一直被引用为GraphQL本身的动力材料。适用于iOS的GraphQL客户端库

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

  1. 仅有Alamofire,AFNetworking,或NSURLSession直接,传递精心制作的手工Query Documents和通过代表所得到的JSON一个Dictionary洞穴探险,或
  2. Chester
  3. GraphQLicious
  4. Swift-GraphQL
+0

我想使用一个JavaScript GraphQL客户端,像阿波罗http: //docs.apollostack.com/apollo-client/实现一些JS函数来处理网络调用,返回结果或错误等。将它与应用程序绑定并使用JavaScriptCore运行它,这里是一个很好的教程https://www.raywenderlich。com/124075/javascriptcore-tutorial –

+0

更新:刚刚发现在JavaScriptCore引擎中运行的JavaScript无法访问网络,那里没有http请求实现,只有纯粹的ECMAScript,所以网络部分应该是本地代码,或者讨厌这样说)JS运行在一个隐藏的WebView中......我希望在Swift中有成熟的GraphQL客户端实现,如果你找到了一个请让我知道......干杯。 –

+2

我今天早上才知道这个:https://github.com/apollostack/apollo-ios – pohl

回答

7

我不会手动构建查询,我认为Chester和GraphQLicious都是w应该对你好。 如果我不得不想象完美的库,它不仅应该构建查询,而且还要将结果解析为Swift对象。正如您从JSON解析库中所了解的那样,这不是一个小任务,这就是为什么大多数GraphQL-Builder库不这样做。

披露:我身后GraphQLicious

7

的球员这个问题被问得很久以前的一个 - 我想今天的标准答案,这将是使用Apollo Client

它使用在网络上类似的API作为阿波罗客户和有几个非常好的特点:

  • 静态类型生成基于GraphQL查询&突变
  • 归缓存
  • 查询看&自动UI更新
  • 手动存储更新

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

这里有一些资源,应可帮助您开始: