Le retour d'Erreurs dans l'API Web

Je suis le développement d'une nouvelle marque à l'aide de l'API REST ASP.NET l'API Web. Venant d'un WCF fond, je me sens attirée par la création d'erreur "contrats" pour mon API.

Dans ce cas, je ne parle pas des exceptions non gérées être retournés au client. Au lieu de cela, je me concentre sur les erreurs telles que l'API utilisée de manière incorrecte par le client - en particulier ceux où le client peut créer automatiquement ces erreurs et de soumettre à nouveau la demande.

La plupart des exemples que j'ai trouvé juste une chaîne de caractères à renvoyer, généralement en jetant un HttpResponseException, ou au moins de faire quelques choses pour rendre le processus de construction d'une erreur informatif plus de chaîne automatisée: De retour d'erreur personnalisé des objets de l'API Web

Je suis en train de réfléchir à la place de la création d'un HttpResponseException, en passant un HttpResponseMessage dont le contenu est fixé pour mon erreur spécifique au type de contrat.

Mon API est également fait un usage intensif de automatique de la validation du modèle, cependant, et ceux du modèle de validation des erreurs de revenir comme un être totalement différent de la structure.

Donc dois-je la force de mes "erreurs" dans le même format que le modèle de validation de réponses? Quelles sont les meilleures pratiques?

Enfin, mon API permettra d'exposer les options de mise en forme de json, xml et le protocole sur les zones tampons. En conséquence, j'ai vraiment besoin de vous assurer que ma stratégie est formateur indépendant.

OriginalL'auteur RMD | 2013-05-26