Question

Je suis mise en œuvre d'une API. L'API accepte / retourne le type de contenu JSON. Maintenant, supposons que les données soumises par une requête POST ne sont pas valides, comme un attribut manquant ou une duplication existe pour les mêmes données. Quel est le code de réponse standard HTML dans ce cas?

Était-ce utile?

La solution

Il y a deux réponses:

Si vous avez soumis un formulaire, il suffit de retourner 200 - OK avec HTML expliquant pourquoi l'objet n'a pas été créé.

Si vous avez une API, vous devez utiliser les éléments suivants

200 OK

  • Lorsque la demande était OK et renvoyé les données appropriées.

201 CRÉÉ

  • L'appel a réussi et le nouvel objet créé.

400 BAD DEMANDE

  • URI demande non valide
  • non valide en-tête HTTP
  • Réception d'un non pris en charge, paramètre non standard
  • Réception d'un message HTTP non valide du corps

401 Unauthorized

  • problèmes d'autorisation. Par exemple. mauvaise clé API, etc.

403 INTERDIT

  • correctement autorisé, mais pas le droit.

404 INTROUVABLE

  • La ressource n'existe pas (par exemple sur Lire ou mise à jour)

405 MÉTHODE INTERDITE

  • Utilisation dans des situations d'une méthode REST donnée n'est pas autorisé. Par exemple. POST sur une seule ressource, ou SUPPRIMER sur la collection de ressources.

409 CONFLIT

  • Lorsqu'une mise à jour échoue, envoyer « conflit » pour permettre au côté client pour résoudre le conflit eux-mêmes et nouvelle tentative.

500 Erreur interne du serveur

  • Erreur interne. Ceci est le code par défaut qui est utilisé pour toutes les erreurs non reconnues.

501 PAS MIS EN ŒUVRE

  • Utiliser pour attendre, mais pas encore les caractéristiques mises en œuvre.

Autres conseils

Les mensonges d'erreur sur le côté client, de sorte que vous souhaitez utiliser un 400 - Bad Request :

  

La demande n'a pas pu être compris par   le serveur en raison d'une syntaxe incorrecte.   Le client ne doit pas répéter la   demande sans modifications.

Le plus proche que je peux trouver serait 400 Bad Request.

Comme Ariejan dit que vous devez baser votre API dans les codes HTTP déjà définis. Si vous voulez envoyer un message d'erreur la meilleure façon devrait être pas utiliser le message HTTP, mais il vaut mieux inclure le message dans le corps de la réponse, JSON formaté.

422 inexploitables Entité (voir RFC 4918, Section 11.2 )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top