REST API design - 24 - Glossaire : tous les termes REST API en un seul endroit

Glossaire alphabetique de plus de 40 termes essentiels du design REST API, avec définitions et liens vers les articles de la serie.

REST API design 25 / 25
  1. 01 REST API design - 00 - Pourquoi le design de ton API change tout
  2. 02 REST API design - 01 - Les principes REST que personne ne lit
  3. 03 REST API design - 02 - Des URLs qui ont du sens
  4. 04 REST API design - 03 - Les méthodes HTTP, pour de vrai
  5. 05 REST API design - 04 - Les codes de statut HTTP qu'il faut connaître
  6. 06 REST API design - 05 - Body, headers et le diable dans les détails
  7. 07 REST API design - 06 - La pagination, ou comment ne pas tuer ta base
  8. 08 REST API design - 07 - Filtrage et tri sans prise de tête
  9. 09 REST API design - 08 - La validation avec Zod, gardien de ton API
  10. 10 REST API design - 09 - Erreurs : un format que tes clients vont adorer
  11. 11 REST API design - 10 - Authentification : JWT, API keys et OAuth2
  12. 12 REST API design - 11 - Versioning : quand et comment faire évoluer ton API
  13. 13 REST API design - 12 - CORS : comprendre et debugger les erreurs cross-origin
  14. 14 REST API design - 13 - Rate limiting : protéger ton API sans frustrer tes clients
  15. 15 REST API design - 14 - Caching : les bonnes réponses sont celles qu'on n'envoie pas
  16. 16 REST API design - 15 - Upload de fichiers : multipart, signed URLs et streaming
  17. 17 REST API design - 16 - Relations entre ressources : embarquer, lier ou les deux
  18. 18 REST API design - 17 - HATEOAS : des liens dans tes réponses
  19. 19 REST API design - 18 - OpenAPI : le contrat entre ton API et le monde
  20. 20 REST API design - 19 - Documentation : une API non documentee est une API inutile
  21. 21 REST API design - 20 - Testing : tester ton API sans devenir fou
  22. 22 REST API design - 21 - Webhooks : quand c'est ton API qui appelle
  23. 23 REST API design - 22 - Performance : quand chaque milliseconde compte
  24. 24 REST API design - 23 - Sécurité : les attaques que tu vas subir (et comment t'en protéger)
  25. 25 REST API design - 24 - Glossaire : tous les termes REST API en un seul endroit

24 - Glossaire : tous les termes REST API en un seul endroit

Ce que tu vas apprendre

  • Les définitions de plus de 40 termes lies au design REST API
  • Les liens vers les articles de la serie qui approfondissent chaque concept
  • Un point de référencé rapide quand tu oublies ce que signifie un acronyme

Prerequisites

Aucun. Ce glossaire est fait pour etre consulte a tout moment. Mais si tu as lu toute la serie depuis l'introduction, tu reconnaitra chaque terme.


Ce glossaire rassemble tous les termes techniques que j'ai utilises dans cette serie. Je l'ai écrit parce que j'en avais marre de chercher "c'est quoi deja un ETag" dans trois articles différents. Tout est ici, en ordre alphabetique, avec un lien vers l'article qui en parle en détail. Si tu cherches un terme et qu'il n'y est pas, c'est que j'ai oublie de l'ajouter -- fais-moi signe sur paltemps.fr.


202 Accepted

Code HTTP qui indique que la requête a ete acceptee pour traitement, mais que le traitement n'est pas termine. Utilise pour les opérations longues (génération de rapport, envoi de masse). Le client peut poller un endpoint de statut pour suivre la progression. Voir Performance.

304 Not Modified

Code HTTP retourne quand le serveur détecté que la ressource n'a pas change depuis la dernière requête du client (via ETag ou Last-Modified). Aucun body n'est renvoye, le client utilise sa copie locale. Voir Caching.

429 Too Many Requests

Code HTTP retourne quand le client a dépassé la limite de requêtes autorisees. Doit etre accompagne d'un header Retry-After. Voir Rate limiting.

API Key

Cle unique attribuee a un client pour s'authentifier auprès de l'API. Généralement envoyee dans un header (X-API-Key ou Authorization). Moins sécurisée qu'un token JWT mais plus simple a gerer pour les integrations machine-to-machine. Voir Authentification.

Backoff exponentiel

Stratégie de retry ou le delai entre chaque tentative augmente exponentiellement (1s, 5s, 30s, 2min...). Evite de surcharger un serveur deja en difficulte. Utilise dans la livraison de webhooks et les appels entre services. Voir Webhooks.

Batch endpoint

Endpoint qui accepte plusieurs identifiants en une seule requête (GET /users?ids=1,2,3) pour éviter le problème N+1 cote client. Voir Relations et Performance.

Bearer token

Schema d'authentification HTTP ou le token est envoye dans le header Authorization: Bearer <token>. Le token est souvent un JWT. Voir Authentification.

Cache-Control

Header HTTP qui definit les regles de mise en cache d'une réponse. Directives principales : public, private, max-age, no-cache, no-store, s-maxage. Voir Caching.

CDN (Content Delivery Network)

Réseau de serveurs distribues geographiquement qui cache les réponses de ton API pres des utilisateurs. Reduit la latence et decharge ton serveur. Voir Caching.

Connection pooling

Technique qui réutilisé les connexions a la base de donnees au lieu d'en ouvrir une nouvelle a chaque requête. Reduit la latence de connexion et limite le nombre de connexions simultanees. Voir Performance.

Contract testing

Tests automatises qui verifient que ta réponse API est conforme au schema défini dans ta spécification OpenAPI. Detecte les derives entre la spec et l'implementation. Voir Testing.

CORS (Cross-Origin Resource Sharing)

Mecanisme qui permet a un serveur d'autoriser les requêtes venant d'un domaine différent. Contrôle par des headers comme Access-Control-Allow-Origin. Voir CORS.

CRUD

Create, Read, Update, Delete. Les quatre opérations de base sur une ressource, correspondant aux verbes HTTP POST, GET, PUT/PATCH, DELETE. Voir Principes REST.

Dead letter queue

File d'attente ou atterrissent les messages (webhooks, événements) qui n'ont pas pu etre livres apres toutes les tentatives de retry. Permet une investigation manuelle et un rejeu. Voir Webhooks.

ETag

Header HTTP qui contient un identifiant unique pour une version spécifique d'une ressource (généralement un hash du contenu). Utilise avec If-None-Match pour les requêtes conditionnelles. Voir Caching.

Expand/Include

Paramètre de requête (?expand=customer,items) qui permet au client de choisir quelles relations embarquer dans la réponse, evitant le problème N+1 au niveau API. Voir Relations.

HATEOAS (Hypermedia As The Engine Of Application State)

Principe REST ou chaque réponse contient des liens vers les actions possibles, permettant au client de naviguer l'API sans connaître les URLs a l'avance. Voir HATEOAS.

Helmet

Package Express.js qui configure automatiquement les security headers HTTP (HSTS, X-Content-Type-Options, etc.). Voir Sécurité.

HMAC-SHA256

Algorithme de signature utilisant un secret partage. Utilise pour vérifier l'authenticite des payloads de webhooks. Le serveur signe le body, le client vérifié la signature. Voir Webhooks.

Idempotence

Propriété d'une opération qui produit le meme résultat qu'on l'exécuté une ou plusieurs fois. GET, PUT et DELETE sont idempotents. POST ne l'est pas. Essentiel pour les webhooks et les retries. Voir Webhooks.

JWT (JSON Web Token)

Token encode en base64 qui contient des claims (identité, rôles, expiration). Compose de trois parties : header, payload, signature. Utilise pour l'authentification stateless. Voir Authentification.

Last-Modified

Header HTTP qui indique la date de dernière modification d'une ressource. Utilise avec If-Modified-Since pour les requêtes conditionnelles. Moins precis qu'un ETag. Voir Caching.

Load testing

Tests de performance qui simulent plusieurs utilisateurs simultanees pour mesurer le comportement de l'API sous charge. Outils : k6, Artillery. Voir Testing.

Mass assignment

Vulnérabilité ou le client peut modifier des champs non autorises (comme role ou is_admin) en les incluant dans le body JSON. Se previent avec des schemas de validation explicites. Voir Sécurité.

multipart/form-data

Format d'encodage HTTP utilise pour envoyer des fichiers et des donnees mixtes dans une meme requête. Chaque partie a son propre Content-Type. Voir Upload.

N+1

Problème de performance ou le chargement de N éléments généré N requêtes supplementaires pour les relations. Se produit au niveau SQL (ORM) et au niveau HTTP (API). Voir Performance et Relations.

OAuth 2.0

Protocole d'autorisation qui permet a une application tierce d'acceder aux ressources d'un utilisateur sans connaître son mot de passe. Utilise des scopes, des tokens d'acces et des refresh tokens. Voir Authentification.

OpenAPI

Spécification (anciennement Swagger) qui decrit une API REST dans un format machine-readable (YAML/JSON). Permet de générer de la documentation, des clients, des mocks et des tests. Voir OpenAPI.

OWASP API Security Top 10

Liste des 10 vulnérabilités les plus critiques spécifiques aux APIs, publiee par l'OWASP. Inclut le broken object level authorization, le mass assignment, et l'absence de rate limiting. Voir Sécurité.

Pagination

Technique qui decoupe une grande liste de résultats en pages. Trois approches : offset/limit, cursor-based, keyset. Voir les premiers articles de la serie.

Preflight request

Requete OPTIONS envoyee automatiquement par le navigateur avant certaines requêtes cross-origin pour vérifier les permissions CORS. Voir CORS.

Presigned URL

URL temporaire générée par le serveur qui autorise un upload direct vers un service de stockage (S3) sans passer par le backend. Expire apres un delai configure. Voir Upload.

Rate limiting

Technique qui limite le nombre de requêtes qu'un client peut envoyer dans une fenêtre de temps. Algorithmes : token bucket, sliding window, fixed window. Voir Rate limiting.

Redoc

Outil de génération de documentation API à partir d'une spec OpenAPI. Produit une interface trois colonnes (navigation, description, exemples). Voir Documentation.

REST (Representational State Transfer)

Style d'architecture pour les APIs web base sur les resources, les verbes HTTP, et les representations (JSON, XML). Defini par Roy Fielding dans sa these de doctorat en 2000. Voir Introduction.

RFC 7807 (Problem Détails)

Standard qui definit un format JSON uniforme pour les erreurs HTTP, avec cinq champs : type, title, status, detail, instance. Content-Type : application/problem+json. Voir Erreurs.

Scalar

Outil de documentation API qui combine l'interactivite de Swagger UI et la lisibilité de Redoc. Genere des code examples dans plusieurs langages. Voir Documentation.

Sparse fieldsets

Paramètre de requête (?fields=id,name,avatar) qui permet au client de sélectionner uniquement les champs dont il a besoin, reduisant la taille de la réponse. Voir Relations.

Streaming

Technique d'envoi de donnees ou le serveur écrit la réponse au fur et a mesure au lieu de tout charger en mémoire. Utilise Transfer-Encoding: chunked. Voir Performance et Upload.

Sub-resource

Ressource qui n'existe que dans le contexte d'un parent (/orders/42/items). Ne devrait pas dépasser deux niveaux d'imbrication. Voir Relations.

Swagger UI

Outil historique de documentation API interactive générée depuis une spec OpenAPI. Permet de tester les endpoints directement dans le navigateur. Voir Documentation.

Token bucket

Algorithme de rate limiting base sur un seau de jetons. Chaque requête consomme un jeton, les jetons se regenerent a un rythme constant. Autorise les bursts quand le seau est plein. Voir Rate limiting.

Versioning

Stratégie pour faire évoluer une API sans casser les clients existants. Approches : URI (/v2/users), header (Accept-Version: 2), query param (?version=2). Voir Versioning.

Webhook

Callback HTTP envoye par ton API vers une URL du client quand un événement se produit. Inverse du polling : le serveur notifie le client au lieu que le client interroge le serveur. Voir Webhooks.


Article précédent : Sécurité

Sources

Réservez un audit gratuit de 30 minutes. Je vous montre concrètement ce qu'on peut automatiser.