API GraphQL avec Swift : tutoriel étape par étape pour iOS et macOS

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

GraphQL API avec Swift : tutoriel étape par étape



GraphQL devient un standard pour les API modernes grâce à sa flexibilité et son efficacité. Contrairement à REST, où vous obtenez une structure de données fixe, GraphQL permet de demander uniquement ce dont vous avez besoin. Dans ce tutoriel, nous allons voir comment intégrer une API GraphQL dans des applications Swift pour iOS et macOS, en utilisant la bibliothèque Apollo iOS. Vous apprendrez à exécuter des requêtes, des mutations et à gérer les erreurs.



1. Configuration du projet et installation d'Apollo iOS



La première étape consiste à créer un nouveau projet Xcode et à ajouter la dépendance Apollo iOS via Swift Package Manager (SPM).



Étape 1.1 : Création du projet

Ouvrez Xcode et créez un nouveau projet (iOS App ou macOS App). Choisissez SwiftUI ou UIKit — notre exemple fonctionnera avec les deux plateformes.



Étape 1.2 : Installation d'Apollo iOS via SPM

  1. Dans Xcode, allez dans File → Add Packages...
  2. Collez l'URL du dépôt : https://github.com/apollographql/apollo-ios.git
  3. Sélectionnez la dernière version stable (par exemple 1.15.0) et cliquez sur Add Package.
  4. Dans la fenêtre qui apparaît, sélectionnez votre projet et ajoutez le package Apollo.


Étape 1.3 : Génération du schéma et du code

Apollo iOS utilise la génération de code basée sur le schéma GraphQL. Téléchargez d'abord le schéma de votre API (généralement via une introspection query). Pour le test, nous utiliserons l'API publique Countries GraphQL (https://countries.trevorblades.com).



Créez un fichier schema.graphqls à la racine du projet et placez-y le schéma (vous pouvez l'obtenir via GraphQL Playground). Ajoutez ensuite le script de génération dans Build Phases :



// Exemple de script dans Build Phasesif which apollo-ios-cli >/dev/null; then    apollo-ios-cli generateelse    echo "Apollo CLI n'est pas installé. Installez-le via : brew install apollo-ios-cli"fi


Installez le CLI via Homebrew : brew install apollo-ios-cli.



2. Exécution d'une requête GraphQL de base



Maintenant que le projet est configuré, écrivons le code pour exécuter une requête. Nous allons récupérer une liste de pays avec leurs codes et noms.



Étape 2.1 : Création de la requête GraphQL

Dans le dossier du projet, créez un fichier Countries.graphql et ajoutez la requête :



query GetCountries {    countries {        code        name    }}


Après cela, lancez la génération de code (via Build ou le terminal). Apollo créera les structures GetCountriesQuery et GetCountriesQuery.Data.



Étape 2.2 : Configuration d'ApolloClient

Créez un gestionnaire réseau :



import Apollo

class NetworkManager { static let shared = NetworkManager() private(set) lazy var apollo: ApolloClient = { let url = URL(string: "https://countries.trevorblades.com")! return ApolloClient(url: url) }()}


Étape 2.3 : Exécution de la requête dans SwiftUI

Exemple pour SwiftUI :



import SwiftUI

struct ContentView: View { @State private var countries: [GetCountriesQuery.Data.Country] = [] var body: some View { List(countries, id: \\.code) { country in Text("\\(country.name) (\\(country.code))") } .onAppear { loadCountries() } } func loadCountries() { NetworkManager.shared.apollo.fetch(query: GetCountriesQuery()) { result in switch result { case .success(let graphQLResult): if let countries = graphQLResult.data?.countries { self.countries = countries } case .failure(let error): print("Erreur de requête : \\(error.localizedDescription)") } } }}


Lancez l'application. Si tout est correct, vous verrez la liste des pays. Félicitations, vous avez intégré GraphQL dans Swift !

Blogs

Book Recommendations