0Pricing
Swift Academy · Leçon

Routage et gestion des requêtes

Définissez des itinéraires et gérez les requêtes HTTP.

Routage et gestion des requêtes est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Qu’est-ce que Vapor

Vapor est un framework web Swift côté serveur populaire, construit sur SwiftNIO. Il vous permet d’écrire des serveurs HTTP — des API et des sites web — entièrement en Swift, en partageant le langage et même les modèles avec votre app iOS.

import Vapor

let app = try await Application.make(.detect())

L’application et les routes

L’objet de l’application Vapor est au cœur d’un serveur Vapor. Vous y enregistrez des routes : des associations entre une méthode HTTP et un chemin, et une fonction de traitement qui renvoie une réponse.

app.get("hello") { req in
    "Hello, world!"
}

Assistants pour les méthodes HTTP

Vapor fournit un assistant pour chaque verbe HTTP : app.get, app.post, app.put, app.patch et app.delete. Chacun accepte des composants de chemin et une fonction de traitement.

app.post("users") { req in
    "Created a user"
}
app.delete("users") { req in
    "Deleted a user"
}

Segments de chemin

Transmettez plusieurs segments textuels pour construire des chemins imbriqués. L’appel ci-dessous répond à GET /api/v1/status.

app.get("api", "v1", "status") { req in
    "OK"
}

Paramètres de route

Utilisez un segment préfixé par deux-points pour capturer une valeur dynamique. Récupérez-la dans la requête avec req.parameters.get(_:). Dans l’exemple ci-dessous, une requête vers /users/42 capture 42.

app.get("users", ":id") { req -> String in
    let id = req.parameters.get("id") ?? "unknown"
    return "User id is " + id
}

Paramètres typés

Vous pouvez convertir un paramètre en type concret en transmettant le type à get. Si la conversion échoue, Vapor renvoie automatiquement une réponse 404, ce qui permet de garder les fonctions de traitement claires.

app.get("posts", ":id") { req -> String in
    let id = try req.parameters.require("id", as: Int.self)
    return "Post number " + String(id)
}

Paramètres de requête

Lisez les paramètres de requête de l’URL via req.query. Pour /search?term=swift, vous pouvez décoder directement le terme. Les valeurs facultatives absentes sont simplement renvoyées comme absentes.

app.get("search") { req -> String in
    let term = try req.query.get(String.self, at: "term")
    return "Searching for " + term
}

Groupes de routes

Regroupez les routes associées sous un préfixe partagé avec app.grouped(...). Vous évitez ainsi de répéter les composants de chemin et gardez les points de terminaison associés ensemble.

let users = app.grouped("users")
users.get { req in "List users" }      // GET /users
users.post { req in "Create user" }    // POST /users

Renvoyer différents types de réponses

Une fonction de traitement peut renvoyer une String, un HTTPStatus, un type Content personnalisé ou une Response entièrement construite. Vapor sait encoder chacun de ces types dans une réponse HTTP.

app.delete("cache") { req -> HTTPStatus in
    // clear something
    return .noContent // 204
}

Lever des erreurs avec Abort

Levez Abort(_:) pour interrompre immédiatement une requête avec un statut HTTP précis et une raison facultative. Vapor le transforme en une réponse d’erreur JSON claire.

app.get("secret") { req -> String in
    guard req.headers.first(name: "X-Key") == "open" else {
        throw Abort(.forbidden, reason: "Missing key")
    }
    return "Welcome"
}

Fonctions de traitement asynchrones

Vapor 4+ prend entièrement en charge async/await. Rendez la fermeture de traitement asynchrone et utilisez try await à l’intérieur pour les opérations de base de données ou de réseau.

app.get("ping") { req async throws -> String in
    try await Task.sleep(for: .milliseconds(10))
    return "pong"
}

Vérification rapide : routage

Vérifiez vos connaissances en matière de routage.

Récapitulatif : routage et traitement des requêtes

Vous savez maintenant configurer un serveur Vapor :

  • Enregistrez des routes avec app.get/post/put/patch/delete et des segments de chemin.
  • Capturez des valeurs dynamiques avec :param et lisez-les via req.parameters (en les typant avec require(_:as:)).
  • Lisez les paramètres de requête depuis req.query et regroupez les routes avec grouped.
  • Renvoyez des chaînes, des statuts ou du contenu ; levez Abort pour les erreurs et utilisez des fonctions de traitement asynchrones.

Questions Fréquemment Posées

La leçon « Routage et gestion des requêtes » est-elle gratuite ?

Oui — le texte complet de « Routage et gestion des requêtes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Routage et gestion des requêtes » ?

Définissez des itinéraires et gérez les requêtes HTTP. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Routage et gestion des requêtes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Routage et gestion des requêtes
  2. Encodage du contenu et du JSON
  3. ORM Fluent et modèles
  4. Intergiciels et authentification
← Retour à Swift Academy