Comment changer l'API Web 2 par défaut en formateur JSON?
J'ai un projet d'API Web qui retourne des données de produit. Il négocie le type de retour correctement en fonction de l'en-tête Accept (JSON/XML) de la demande. Le problème est que, si aucun en-tête Accept est spécifié, retourne XML, mais je le veux de retour JSON par défaut
http://website.com/MyPage?type=json //returns json
http://website.com/MyPage?type=xml //returns xml
http://website.com/MyPage //returns xml by default
Voici mon code actuel ressemble:
GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(
new QueryStringMapping("type", "xml", new MediaTypeHeaderValue("application/xml")));
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("type", "json", new MediaTypeHeaderValue("application/json")));
source d'informationauteur Nick Kahn
Vous devez vous connecter pour publier un commentaire.
Ajouter ceci dans votre
App_Start/WebApiConfig.cs
:Je pense que l'API Web utilise le premier module de formatage, il peut en trouver dans les Formateurs de la collection. Vous pouvez modifier l'ordre avec quelque chose comme
Mais il semble que le JSON formateur doit être la première par défaut, de sorte que vous pourriez vouloir vérifier si vous êtes déjà en train de changer cette collection quelque part.
Je pense que vous devriez changer de la manière suivante.
Ou tout simplement supprimer le XmlFormatter
Aucune des réponses ci-dessus, a travaillé pour moi. Le problème était que je commençais à tenir des formateurs de
GlobalConfiguration
et pas leconfig
objet créé avecnew HttpConfiguration()
Voici le code qui fonctionne pour moi :