Cours HTTP et API REST : comprendre le web et concevoir des API

HTTP et API REST est un cours de niveau intermédiaire de 6 leçons (environ 3 h 50), avec 18 exercices et 18 questions de quiz. Prérequis : JavaScript asynchrone (promesses, fetch, API). Les exercices s'exécutent dans le navigateur, sans installation.

  • Back-end
  • Intermédiaire
  • 6 leçons
  • 3 h 50
  • 18 exercices
  • Exercices exécutés dans le navigateur

Le cours en bref

Ce cours explique le fonctionnement du protocole HTTP et les bonnes pratiques de conception des API REST, côté client comme côté serveur. Vous apprendrez à choisir méthodes et codes de statut, à concevoir des URL et une pagination, à valider des données JSON, à renvoyer des erreurs standardisées, à maîtriser cache, CORS et authentification, puis à assembler un routeur d'API minimal. Tous les exercices sont exécutés en JavaScript avec les objets standard URL, Request et Response, sans serveur ni réseau.

Ce que tu sauras faire

  • Lire et construire des requêtes et réponses HTTP, et manipuler les URL de façon sûre
  • Choisir la méthode et le code de statut adaptés, et appliquer les règles d'idempotence et de réessai
  • Concevoir une API REST cohérente avec ressources, filtrage, tri et pagination
  • Valider des payloads JSON et renvoyer des erreurs au format Problem Details
  • Configurer le cache (Cache-Control, ETag), CORS et l'authentification par jeton ou cookie
  • Implémenter et tester un routeur d'API minimal sans lancer de serveur

Programme des 6 leçons

    • Décrire l'échange requête/réponse et la structure d'un message HTTP
    • Décomposer une URL (schéma, hôte, port, chemin, paramètres, fragment)
    • Manipuler URL et URLSearchParams en JavaScript

    Requête et réponse HTTPStructure d'une URLEn-têtes HTTP

  1. 02

    Méthodes et codes de statut

    18 min
    • Choisir la bonne méthode HTTP selon l'intention
    • Expliquer sûreté et idempotence et leurs conséquences (réessais, cache)
    • Choisir et interpréter les codes de statut courants

    Méthodes HTTPSûreté et idempotenceCodes de statut

  2. 03

    Concevoir une API REST : ressources, URL et pagination

    18 min
    • Modéliser une API autour de ressources et de collections
    • Concevoir des URL cohérentes et choisir méthodes et statuts
    • Mettre en place filtrage, tri et pagination

    Principes RESTConception des URLFiltrage, tri et pagination

  3. 04

    Corps JSON, validation et format des erreurs

    18 min
    • Envoyer et lire des corps JSON avec les bons en-têtes
    • Valider un payload et répondre avec le bon statut
    • Renvoyer des erreurs structurées au format Problem Details

    Corps JSON et Content-TypeValidation des donnéesErreurs structurées (Problem Details)

  4. 05

    En-têtes essentiels : cache, CORS et authentification

    20 min
    • Contrôler la mise en cache avec Cache-Control, ETag et les requêtes conditionnelles
    • Expliquer et configurer CORS, y compris les requêtes de prévérification
    • Transmettre une authentification par jeton Bearer ou par cookie sécurisé

    Cache HTTP et ETagCORSAuthentification HTTP

  5. 06

    Assembler un routeur d'API minimal

    20 min
    • Associer méthodes et chemins paramétrés à des gestionnaires
    • Produire automatiquement 404 et 405 avec l'en-tête Allow
    • Assembler un mini-service CRUD testable avec les objets standard Request et Response

    RoutageGestionnaires Request → ResponseService CRUD

Projet final

API de gestion de réservations, testée sans serveur

Concevez et implémentez en JavaScript l'API d'un service de réservation de salles. Rédigez d'abord le contrat (ressources, URL, méthodes, codes de statut, format des erreurs), puis implémentez-le avec un routeur de type (Request) => Response : création, consultation, modification et annulation des réservations, liste filtrée et paginée, validation des payloads, erreurs Problem Details, ETag sur la liste des salles, en-têtes CORS pour l'application front et authentification par jeton Bearer. L'ensemble est couvert par des tests node:assert qui construisent des Request sans réseau.

Livrables

  • Le contrat de l'API (tableau des routes ou spécification OpenAPI) avec exemples de requêtes et réponses
  • Le code du routeur, des middlewares (authentification, CORS, journalisation) et des gestionnaires
  • Un module de validation et un générateur d'erreurs application/problem+json
  • La pagination de la liste des réservations avec liens suivant/précédent
  • La gestion des conflits de créneaux avec 409 et des requêtes conditionnelles avec ETag/304
  • Une suite de tests couvrant succès, 401, 403, 404, 405, 409, 415, 422 et 304

Critères d'évaluation

  • URL orientées ressources et méthodes conformes à leur sémantique
  • Codes de statut exacts et en-têtes associés (Location, Allow, WWW-Authenticate, ETag)
  • Validation stricte des entrées sans affectation de masse
  • Erreurs homogènes, utiles et sans fuite d'information
  • Politique CORS et authentification correctes
  • Tests complets et lisibles, exécutables sans serveur

Questions fréquentes

Quelle est la différence entre HTTP et une API REST ?

HTTP est le protocole qui transporte les requêtes et les réponses sur le web. REST est un style d'architecture qui utilise HTTP de façon cohérente : des ressources identifiées par des URL, manipulées avec les méthodes standard et des codes de statut explicites.

Ce cours est-il utile pour un data scientist ?

Oui. Les données proviennent souvent d'API et les modèles sont souvent exposés via une API. Savoir construire des requêtes, gérer pagination, authentification et erreurs, et servir une prédiction en JSON fait partie du métier.

Faut-il savoir programmer un serveur pour suivre ce cours ?

Non. Il suffit de connaître JavaScript et l'asynchrone (promesses, fetch). Les exercices testent la logique avec les objets standard Request et Response, sans installer ni lancer de serveur. Les cours suivants du parcours appliquent ces notions à un framework back-end.

Pourquoi ai-je des erreurs CORS dans la console de mon navigateur ?

Le navigateur bloque la lecture d'une réponse provenant d'une autre origine si le serveur ne l'autorise pas avec les en-têtes CORS appropriés. La leçon sur les en-têtes explique comment configurer Access-Control-Allow-Origin et les requêtes de prévérification.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « HTTP et API REST » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.