HTTP 201 Created
Réponse de succès pour une création : une nouvelle ressource existe désormais, et Location indique où.
Ce que signifie HTTP 201
HTTP 201 Created est renvoyé lorsqu'une requête — presque toujours un POST ou un PUT — a créé avec succès une nouvelle ressource sur le serveur. Les API REST l'utilisent pour distinguer « quelque chose de nouveau existe désormais » du succès générique 200.
Une réponse 201 correcte inclut un en-tête Location avec l'URL de la ressource nouvellement créée, et reprend souvent l'objet créé dans le corps afin que le client n'ait pas besoin d'un GET de suivi.
Causes courantes des réponses 201
- Une requête POST a créé un enregistrement, un fichier ou un compte.
- Une requête PUT a créé une ressource à l'URL exacte fournie par le client.
- Un endpoint de traitement par lot a terminé de créer une ressource principale de manière synchrone.
Bonnes pratiques pour les développeurs
- Définissez l'en-tête Location sur l'URL canonique de la nouvelle ressource.
- Renvoyez la représentation créée (avec son id attribué par le serveur) dans le corps pour éviter un aller-retour supplémentaire au client.
- Si la création est mise en file d'attente plutôt que terminée, renvoyez 202 Accepted à la place.
- Des POST identiques répétés créent des doublons ? Envisagez des clés d'idempotence et répondez 200/409 pour les rejeux.
Exemple de réponse
HTTP/1.1 201 Created
Location: /api/users/1024
Content-Type: application/json
{"id":1024,"name":"New user"}FAQ
Quelle est la différence entre 200 et 201 ?
Les deux signifient un succès, mais 201 indique spécifiquement au client qu'une nouvelle ressource a été créée. 200 signifie simplement que la requête a été traitée.
L'en-tête Location est-il obligatoire avec 201 ?
C'est fortement recommandé : il pointe vers l'URL de la ressource nouvellement créée afin que les clients puissent la récupérer ou la lier.
Quand une API doit-elle renvoyer 202 plutôt que 201 ?
Lorsque la création se produit de manière asynchrone — 202 signifie que la requête a été acceptée mais que la ressource n'existe pas encore.