GraphQL API avec Swift : tutoriel pratique étape par étape

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

Introduction : pourquoi GraphQL et Swift forment le duo idéal

Le développement iOS moderne est impensable sans une interaction efficace avec le serveur. L'API REST cède progressivement la place à une technologie plus flexible et performante — GraphQL. Dans ce tutoriel, nous allons voir comment intégrer l'API GraphQL dans une application Swift en pratique, en utilisant la bibliothèque Apollo iOS.

GraphQL permet de demander exactement les données nécessaires — ni plus, ni moins. Pour Swift, cela signifie une réduction du trafic, une accélération du travail et une simplification du code. Nous parcourrons le chemin complet : de la configuration du projet à l'exécution de requêtes et mutations complexes.



1. Configuration du projet et installation d'Apollo iOS

La première étape — préparer le projet Xcode et installer les dépendances. La méthode la plus pratique est via Swift Package Manager.



1.1 Création d'un nouveau projet

Ouvrez Xcode et créez un nouveau projet (iOS App ou macOS App). Choisissez SwiftUI ou UIKit — ce n'est pas déterminant. Nommons-le GraphQLDemo.



1.2 Ajout d'Apollo iOS via SPM

  1. Dans Xcode, allez dans : File → Add Package Dependencies...
  2. Collez l'URL du dépôt : https://github.com/apollographql/apollo-ios.git
  3. Sélectionnez la dernière version stable et cliquez sur Add Package.
  4. Assurez-vous que le paquet est ajouté à la cible de votre application.


1.3 Génération du code du schéma

Apollo iOS utilise la génération de code. Pour cela, nous avons besoin d'un fichier de schéma .graphqls (généralement téléchargé depuis le serveur) et de fichiers de requêtes .graphql.

// Structure du projet :// GraphQLDemo/// ├── GraphQL/// │   ├── schema.graphqls      // Schéma du serveur// │   ├── Queries.graphql      // Requêtes// │   └── Mutations.graphql    // Mutations

Après avoir ajouté les fichiers, lancez la génération de code via le terminal :

cd /chemin/vers/le/projet./Pods/Apollo/apollo-ios-cli --download-schema --endpoint=https://votre-serveur/graphql./Pods/Apollo/apollo-ios-cli --generate

Vous avez maintenant des fichiers Swift générés avec les types et les requêtes.



2. Requête de base (Query) en Swift

Analysons la requête la plus simple pour obtenir une liste d'utilisateurs. Supposons que notre schéma contienne le type User avec les champs id, name, email.



2.1 Création du fichier .graphql

Dans le dossier GraphQL, créez un fichier Queries.graphql :

query GetUsers {  users {    id    name    email  }}


2.2 Exécution de la requête en Swift

D'abord, initialisons le client Apollo :

import Apollo

class NetworkManager { static let shared = NetworkManager() let apollo: ApolloClient private init() { let url = URL(string: "https://votre-serveur/graphql")! apollo = ApolloClient(url: url) }}

Exécutons maintenant la requête dans n'importe quel ViewController ou ViewModel :

import SwiftUI

struct UsersView: View { @State private var users: [GetUsersQuery.Data.User] = [] var body: some View { List(users, id: \\.id) { user in VStack(alignment: .leading) { Text(user.name) .font(.headline) Text(user.email) .font(.subheadline) .foregroundColor(.gray) } } .onAppear { loadUsers() } } private func loadUsers() { NetworkManager.shared.apollo.fetch(query: GetUsersQuery()) { result in switch result { case .success(let graphQLResult): if let usersData = graphQLResult.data?.users { self.users = usersData } case .failure(let error): print("Erreur : \\(error.localizedDescri

Blogs

Book Recommendations