Référence rapide

Aide-mémoire API RESTful

Guide de référence rapide pour les API RESTful : sémantique des verbes HTTP, codes de statut, erreurs JSON, en-têtes et idempotence.

· Publié le

REST (Representational State Transfer) est un style d'architecture permettant de concevoir des services d'API web en réseau sur HTTP.

Verbes HTTP et sémantique

Méthode Action ciblée Sûr Idempotent
GET Récupérer la représentation d'une ressource Oui Oui
POST Créer une nouvelle ressource subordonnée Non Non
PUT Remplacer toute la représentation de la ressource Non Oui
PATCH Mettre à jour partiellement les propriétés Non Non
DELETE Supprimer la ressource Non Oui
HEAD Récupérer les en-têtes sans corps de réponse Oui Oui
OPTIONS Interroger les méthodes HTTP supportées par le point d'accès Oui Oui

Codes de statut HTTP courants

Succès (2xx)

  • 200 OK: Requête réussie (le corps contient la représentation).
  • 201 Created: Ressource créée avec succès (l'en-tête Location indique l'URI).
  • 202 Accepted: Requête acceptée pour traitement asynchrone.
  • 204 No Content: Action réussie, aucun corps renvoyé (fréquent avec DELETE).

Erreurs client (4xx)

  • 400 Bad Request: Syntaxe malformée, paramètres invalides ou échec de validation.
  • 401 Unauthorized: Authentification manquante ou invalide.
  • 403 Forbidden: L'utilisateur authentifié n'a pas l'autorisation d'accéder à la ressource.
  • 404 Not Found: L'URI de la ressource n'existe pas.
  • 409 Conflict: La requête entre en conflit avec l'état actuel (ex. doublon de clé unique).
  • 422 Unprocessable Entity: Requête bien formée ayant échoué à la validation sémantique métier.
  • 429 Too Many Requests: Limite de débit (Rate Limit) dépassée.

Erreurs serveur (5xx)

  • 500 Internal Server Error: Erreur générique non gérée côté serveur.
  • 502 Bad Gateway: Le serveur amont (Upstream) a renvoyé une réponse invalide.
  • 503 Service Unavailable: Serveur surchargé ou en cours de maintenance.

Enveloppe d'erreur JSON standard

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The email address provided is already registered.",
    "details": [
      {
        "field": "email",
        "issue": "unique_constraint_violated"
      }
    ]
  }
}

Références

Sujets associés