iOS
Intégration d'Apollo GraphQL dans vos projets Swift iOS
22 min
introduction dans cette section, vous apprendrez comment installer le client apollo ios sur votre projet swift et interroger des données depuis back4app en l'utilisant prérequis pour compléter ce guide rapide, vous avez besoin de xcode une application créée sur back4app suivez le tutoriel de nouvelle application parse pour apprendre à créer une application parse sur back4app une classe avec des données stockées (pour que vous puissiez les récupérer) 1 intégrer le client apollo dans votre projet xcode la manière la plus simple d'intégrer le client apollo ios est d'utiliser cocoapods https //cocoapods org/ pour l'intégrer, suivez ces étapes créez votre projet xcode et dans le même dossier que votre fichier xcodeproj, créez un nouveau fichier nommé podfile modifiez le fichier podfile et ajoutez le code suivant, en changeant la chaîne yourprojectnamehere par le nom de votre projet \# uncomment the next line to define a global platform for your project platform \ ios, '12 0' target 'yourprojectnamehere' do \# comment the next line if you're not using swift and don't want to use dynamic frameworks use frameworks! \# pods for conferenceplanner pod 'apollo' end enregistrez le fichier et ouvrez un terminal allez dans ce dossier et tapez lorsque l'installation est terminée, vous devriez avoir un nouveau fichier au format xcworkspace ouvrez ce fichier avec xcode 2 récupérez vos schémas vous avez besoin d'un fichier nommé schema json contenant les schémas pour votre point de terminaison graphql il existe deux façons de récupérer votre schéma complet utiliser la console graphql de back4app utiliser apollo nous allons discuter des deux choisissez celui que vous préférez 2 1 récupérer vos schémas avec la console graphql de back4app allez à votre console graphql pour l'application dont vous souhaitez récupérer le schéma et, à droite sous l'onglet schéma, cliquez sur le bouton télécharger 2 2 récupérer vos schémas avec apollo si vous préférez utiliser apollo, vous devez d'abord installer la version de bureau en tapant ensuite, exécutez la commande suivante en remplaçant les valeurs des en têtes par votre appid et masterkey cela générera un fichier aschema json en sortie 3 ajoutez votre fichier schema json au projet ajoutez le fichier schema json que vous avez téléchargé ou récupéré à votre projet dans le répertoire racine c'est le même dossier où se trouve votre fichier appdelegate swift 4 créez vos fichiers graphql vous pouvez maintenant créer vos fichiers graphql avec vos fichiers et mutations ces fichiers doivent avoir l'extension graphql et contenir au moins une requête ou mutation afin qu'apollo puisse créer le code swift à partir de cela une convention utile est de regrouper les requêtes, mutations ou fragments avec le code swift qui les utilise en créant \<name> graphql à côté de \<name> swift si vous n'avez pas de fichiers graphql préexistants dans votre arborescence de fichiers, créez une requête très simple et ajoutez la à un fichier graphql dans votre arborescence de fichiers afin que lorsque vous exécutez l'étape de génération de code, il trouve réellement quelque chose sinon, vous obtiendrez l'erreur aucune opération ou fragment trouvé pour générer du code voici une requête simple qui, à titre d'exemple, renvoie les utilisateurs de parse 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } ajoutez ce fichier à votre répertoire target au même niveau que votre fichier schema json 5 ajoutez une étape de génération de code vous pouvez invoquer apollo dans le cadre du processus de construction xcode, ce qui récupérera et mettra à jour automatiquement le fichier schema json afin que vos classes reflètent toujours les modifications que vous apportez en appelant le script wrapper check and run apollo cli sh le wrapper vérifie si la version d'apollo installée sur votre système est compatible avec la version du framework dans votre projet si vous ne vérifiez pas cela, vous pourriez potentiellement générer du code qui est incompatible avec le code d'exécution dans le framework les étapes sont dans l'onglet des paramètres des phases de construction de votre cible d'application, cliquez sur l'icône + et choisissez nouvelle phase de script d'exécution dans le script d'exécution créé, changez son nom en générer l'api apollo graphql faites glisser ce nouveau script d'exécution juste au dessus de compiler les sources dans votre liste de phases de construction afin qu'il s'exécute avant que votre code ne soit compilé ajoutez ce qui suit au script d'exécution si vous utilisez xcode 11 beta, ajoutez ce script à la place 6 construisez et ajoutez votre fichier api au target construisez votre projet et un fichier nommé api swift devrait être créé dans le répertoire de votre target faites glisser le fichier api swift généré vers votre target et assurez vous de décocher la case "copier les fichiers si nécessaire" assurez vous d'avoir vérifié tous les targets dans lesquels le fichier api doit être inclus 7 configurer le client maintenant, dans votre viewcontroller swift, créez votre configuration apollo et changez vos valeurs appid et clientkey 1 let apollo apolloclient = { 2 let configuration = urlsessionconfiguration default 3 configuration httpadditionalheaders = \[ 4 "x parse application id" "yourappidhere", 5 "x parse client key" "yourclientkeyhere" 6 ] 7 8 let url = url(string "https //parseapi back4app com/graphql")! 9 10 return apolloclient( 11 networktransport httpnetworktransport( 12 url url, 13 configuration configuration 14 ) 15 ) 16 }() 8 configurer le client dans votre viewdidload, appelez votre requête graphql depuis le client apollo 1 apollo fetch(query findallusersquery()) { result in 2 guard let data = try? result get() data else { return } 3 print(data objects? finduser results\[0] username) 4 } si vous avez des utilisateurs dans votre classe user, le premier (index 0) devrait être récupéré étape optionnelle obtenez la coloration syntaxique vous pouvez avoir la coloration syntaxique graphql sur xcode si vous le souhaitez pour y parvenir clonez le dépôt xcode apollo https //github com/apollostack/xcode apollo sur votre ordinateur fermez xcode s'il est actuellement en cours d'exécution vous devrez peut être créer ces dossiers à l'intérieur de /library/developer/xcode 4\ copiez graphql ideplugin dans /library/developer/xcode/plug ins 5\ copiez graphql xclangspec dans /library/developer/xcode/specifications vous pourriez recevoir un avertissement la première fois que vous démarrez xcode après avoir installé ces modules complémentaires une fois que vous acceptez de charger le plugin, vous ne verrez plus cet avertissement