GraphQL API avec Swift : tutoriel pas à pas pour débutants

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 à GraphQL et Swift

GraphQL est un langage de requêtes moderne pour les API, développé par Facebook. Contrairement à REST, où vous obtenez une structure de données fixe, GraphQL permet au client (votre application en Swift) de demander uniquement les champs réellement nécessaires. Cela est particulièrement pertinent pour les développeurs mobiles travaillant avec iOS et macOS : moins de données signifie moins de trafic, un chargement plus rapide et une meilleure expérience utilisateur.

Dans ce tutoriel, nous allons voir comment connecter une API GraphQL à votre projet Swift, effectuer des requêtes de base et des mutations. Nous utiliserons le client officiel Apollo iOS — la bibliothèque la plus populaire et la mieux prise en charge pour travailler avec GraphQL dans l'écosystème Apple.

À la fin de cet article, vous serez capable de :

  • Configurer Apollo iOS dans un projet Xcode
  • Écrire et exécuter une requête GraphQL (Query)
  • Envoyer une mutation (Mutation) pour modifier des données
  • Gérer les réponses et les erreurs


1. Configuration du projet et installation d'Apollo iOS

1.1. Création d'un nouveau projet

Ouvrez Xcode et créez un nouveau projet (application iOS ou macOS). Choisissez le langage Swift et l'interface SwiftUI ou UIKit — cela n'a pas d'importance, car le travail réseau ne dépend pas du framework d'interface utilisateur.



1.2. Installation via Swift Package Manager

Apollo iOS s'installe facilement via SPM. Allez dans File → Add Packages... et collez l'URL :

https://github.com/apollographql/apollo-ios.git

Choisissez la dernière version stable (au moment de la rédaction — 1.15.0) et ajoutez le paquet à votre cible.

Installez également Apollo Code Generation CLI — l'outil pour générer des types Swift à partir du schéma GraphQL. Le plus simple est de l'installer via Homebrew :

brew install apollo-ios-cli

Si Homebrew n'est pas installé, vous pouvez utiliser npm :

npm install -g apollo-ios-cli


1.3. Initialisation de la configuration

Dans le terminal, à la racine de votre projet, exécutez :

apollo-ios-cli init --module-name YourAppName --schema-namespace GraphQL

Cette commande crée un fichier apollo-codegen-config.json et un dossier GraphQL, où seront stockés vos fichiers .graphql.

Ajoutez maintenant le schéma du serveur à votre projet. Si le serveur fournit un schema.json ou schema.graphqls, copiez-le dans le dossier GraphQL. Sinon, vous pouvez utiliser la commande intégrée pour le télécharger :

apollo-ios-cli fetch-schema --endpoint=https://your-graphql-endpoint.com/graphql


2. Écrire notre première requête GraphQL (Query)

2.1. Création d'un fichier .graphql

Dans le dossier GraphQL, créez un fichier Queries.graphql et écrivez une requête simple. Supposons que nous ayons une API pour obtenir la liste des utilisateurs :

query GetUsers {  users {    id    name    email  }}


2.2. Génération du code Swift

Lancez la génération de code depuis le terminal :

apollo-ios-cli generate

Après une génération réussie, un fichier API.swift apparaîtra dans le dossier Sources/API (ou dans celui que vous avez spécifié) avec les types GetUsersQuery, GetUsersQuery.Data, etc.



2.3. Exécution de la requête depuis Swift

Créons maintenant une instance du client Apollo et exécutons la requête. Dans votre ContentView.swift (ou tout autre fichier), écrivez :

import Apolloimport SwiftUI

class NetworkManager { static let shared = NetworkManager() private(set) lazy var apollo = ApolloClient(url: URL(string: "https://your-graphql-endpoint.com/graphql")!)}

struct ContentView: View { @State private var users: [GetUsersQuery.Data.User] = [] var body: some View { List(users, id: \\.id) { user in VStack(alignment: .leading) { Text(user.name)

Blogs

Book Recommendations