2016-04-21 134 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,但總體來說是一個超級有希望的項目!

這裏有一些資源,應可幫助您開始: