Je construis une API REST qui permet des insertions (POST, pas idempotent) et des mises à jour (PUT, idempotent) des demandes pour ajouter / mettre à jour la base de données à notre application.
Je me demande s'il existe des normes ou des meilleures pratiques concernant les données que nous renvoyons au client dans la réponse pour une opération POST (insertion). Nous devons renvoyer au moins une valeur d'ID d'enregistrement (par exemple, votre nouvel enregistrement est l'enregistrement n ° 1234).
Faut-il répondre avec l'objet complet? (par exemple, essentiellement la même réponse qu'ils obtiendraient d'une demande "GET / object_type / 1234")
Devrions-nous répondre uniquement avec la nouvelle valeur ID? (par exemple, "{id: 1234}", ce qui signifie que s'ils veulent récupérer l'enregistrement entier, ils doivent effectuer une requête HTTP GET supplémentaire pour récupérer l'enregistrement complet)
Un en-tête de redirection les dirigeant vers l'URL de l'objet complet?
Quelque chose d'autre entièrement?
Réponses:
Eh bien, dans une interface REST, en suivant HTTP dans la mesure du possible, je retournerais un 201 et un URI dans le champ d'en-tête Location à la ressource nouvellement créée. Voici ce que disent les définitions de code d'état :
Si quelque chose tournait mal, je dirais que vous ne devriez pas revenir
-1
comme d'autres l'ont dit, mais simplement un code d'erreur client ou serveur (4xx ou 5xx). Par exemple, si un utilisateur n'est pas autorisé à créer une nouvelle ressource, vous renvoyez simplement un "401 non autorisé", rien de plus et rien de moins.la source