2016-04-21 13 views
13

Ich habe einen GraphQL-Dienst, den ich aus einer iOS-App herausholen muss, und ich versuche zu untersuchen, welche Optionen für Clientbibliotheken verfügbar sind, die auf diesen Zweck ausgerichtet sind. Mein erster Eindruck ist, dass es nicht viele gute Möglichkeiten gibt, und ich bin etwas überrascht, da die mobile App von Facebook immer als Motivationsmaterial für GraphQL selbst angeführt wird.GraphQL-Clientbibliotheken für iOS

Was folgt, ist mein derzeitiges Verständnis meiner Optionen. Meine Fragen sind: Welche Client-Bibliothek Optionen habe ich übersehen? Ich bin auch neugierig, wenn Sie sich die ideale GraphQL-Client-Bibliothek für iOS vorstellen, wie könnte sie aussehen?

  1. Gerade Alamofire, AFNetworking oder NSURLSession direkt vorbei in liebevoll handgefertigten Query Documents und Spelunking durch eine Dictionary die resultierende JSON darstellt, oder
  2. Chester
  3. GraphQLicious
  4. Swift-GraphQL
+0

Ich dachte über einen JavaScript-GraphQL-Client , wie Apollo http: //docs.apollostack.com/apollo-client/ Implementiere ein paar JS-Funktionen, um Netzwerkanrufe zu behandeln, Ergebnisse oder Fehler zurückzugeben usw. Gebündle es mit der App und führe es mit JavaScriptCore aus, hier ist ein gutes Tutorial https: //www.raywenderlich.com/124075/javascriptcore-tutorial –

+0

UPDATE: gerade herausgefunden, dass das JavaScript in JavaScript Engine läuft nicht auf das Netzwerk zugreifen kann, gibt es keine HTTP-Anfrage Implementierung und es ist nur pure ECMAScript, so dass der Netzwerkteil nativen Code sein sollte, oder (hasse es, dies zu sagen) JS läuft in einem versteckten WebView ... Ich wünschte es gäbe in Swift ausgereifte Implementierungen von GraphQL Client, wenn Sie einen gefunden haben, lassen Sie es mich bitte wissen ... Prost. –

+2

Ich erfuhr erst heute morgen von diesem: https://github.com/apollostack/apollo-ios – pohl

Antwort

7

Ich würde keine Abfragen von Hand erstellen, und ich denke, sowohl Chester und GraphQLicious w Es wäre in Ordnung für dich. Wenn ich mir die perfekte Bibliothek vorstellen musste, sollte sie nicht nur Abfragen erstellen, sondern auch das Ergebnis in Swift-Objekte zerlegen. Dies ist, wie Sie vielleicht aus den JSON-Parsing-Bibliotheken wissen, keine kleine Aufgabe, weshalb die meisten GraphQL-Builder-Bibliotheken es nicht tun.

Disclosure: Ich bin einer von den Jungs hinter GraphQLicious

7

Diese Frage vor langer Zeit gefragt wurde - ich glaube, heute die Standard-Antwort auf diese Apollo Client zu verwenden sein.

Es eine ähnliche API wie der Apollo-Client auf dem Web verwendet und hat ein paar wirklich nette Features:

  • Statische Typen Generation basierend auf GraphQL Abfragen & Mutationen
  • Normalized Cache
  • Abfrage beobachten & automatische UI-Updates
  • Manuelles speichern Updates

Es hat noch nicht 1.0 erreicht, aber insgesamt ist ein super vielversprechendes Projekt!

Hier sind einige Ressourcen, die Ihnen den Einstieg erleichtern sollen: