Comment écrire une API REST en Swift en 30 minutes

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 une API REST en Swift est rapide et moderne

Le développement d'applications mobiles pour iOS et macOS nécessite non seulement une interface attrayante, mais aussi un backend serveur fiable. L'API REST (Representational State Transfer) reste le standard de facto pour l'échange de données entre le client et le serveur. Si vous écrivez déjà en Swift pour l'écosystème Apple, créer une API dans le même langage est une étape logique. Cela permet de réutiliser les modèles de données, d'éviter la duplication de code et de mettre en œuvre les changements plus rapidement.

Dans cet article, nous allons vous montrer comment écrire une API REST complète en Swift en utilisant le framework Vapor — le framework web le plus populaire pour Swift. Vous apprendrez à configurer un projet, à créer des routes, à gérer le JSON et à exécuter le serveur. L'ensemble du processus ne prendra pas plus de 30 minutes. Prêt ? C'est parti !



1. Configuration de l'environnement et installation de Vapor

Avant d'écrire du code, assurez-vous d'avoir les outils nécessaires installés. Travailler avec Vapor nécessite Swift 5.9 ou plus récent (Swift 6 est recommandé). Vous aurez également besoin d'un terminal et d'un éditeur de code (Xcode ou VS Code).

Installation de Vapor Toolbox

Vapor Toolbox est un utilitaire en ligne de commande qui simplifie la création et la gestion de projets. Installez-le via Homebrew :

brew install vapor

Si Homebrew n'est pas installé, téléchargez-le depuis brew.sh. Après l'installation, vérifiez la version :

vapor --version

Création d'un nouveau projet

Ouvrez le terminal et exécutez la commande :

vapor new MyAPI --template=api

Le drapeau --template=api crée une structure de base pour une API REST sans fichiers inutiles. Accédez au dossier du projet :

cd MyAPI

Ouvrez maintenant le projet dans Xcode :

open Package.swift

Ou utilisez n'importe quel autre éditeur. Terminé ! Vous disposez d'un modèle Vapor propre.



2. Structure de base : Modèles, Contrôleurs et Routes

Vapor utilise l'architecture MVC (Modèle-Vue-Contrôleur) adaptée au développement côté serveur. Nous allons créer une API simple pour gérer une liste de tâches.

Création du modèle

Un modèle est une structure qui décrit les données. Dans le dossier Sources/App/Models/, créez un fichier Todo.swift :

import Fluentimport Vapor

final class Todo: Model, Content { static let schema = "todos" @ID(key: .id) var id: UUID? @Field(key: "title") var title: String @Field(key: "is_completed") var isCompleted: Bool init() { } init(id: UUID? = nil, title: String, isCompleted: Bool = false) { self.id = id self.title = title self.isCompleted = isCompleted }}

Nous utilisons Fluent — l'ORM de Vapor pour travailler avec les bases de données. Le modèle est automatiquement sérialisé en JSON grâce au protocole Content.

Création du contrôleur

Le contrôleur contient la logique de gestion des requêtes. Créez un fichier Sources/App/Controllers/TodoController.swift :

import Vaporimport Fluent

struct TodoController: RouteCollection { func boot(routes: RoutesBuilder) throws { let todos = routes.grouped("todos") todos.get(use: index) todos.post(use: create) todos.group(":todoID") { todo in todo.delete(use: delete) } } // GET /todos — obtenir toutes les tâches func index(req: Request) async throws -> [Todo] { try await Todo.query(on: req.db).all() } // POST /todos — créer une tâche func create(req: Request) async throws -> Todo { let todo = try req.content.decode(Todo.self) try await todo.save(on: req.db) return todo } // DELETE /todos/:id — supprimer une tâche func delete(req: R

Blogs

Book Recommendations