Asp.Net Web API: Custom return format

¿Como cambiar el formato de los resultados devueltos por un servicio mediante un parametro en la url de la solicitud GET?.

Pues es muy sencillo.

Tenemos que agregar a la configuración del servicio, los formatters que queremos usar. Lo más común es usar Xml y Json.

Añadimos al Global.asax el siguiente código:

  1. GlobalConfiguration.Configuration.Formatters.Clear();
  2. GlobalConfiguration.Configuration.Formatters.Add(new XmlMediaTypeFormatter());
  3. GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());

Y despues vamos a configurar que: mediante un parametro “format” podamos indicar en la consulta el formato deseado: Xml o Json.

Agregamos la línea:

  1. GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
  2.                 new QueryStringMapping(“format”, “json”, “application/json”)
  3.                 );

De esta forma estamos configurando un comportamiento del servicio para que cuando reciba un parametro “format=json” utilice el formatter “JsonMediaTypeFormatter” y devuelva los datos en Json.

Como hemos añadido en primer lugar el formatter “XmlMediaTypeFormatter”, el formato por defecto será XML.

Y voila: http://myservice/data?format=json devolverá Json y http://myservice/data devolverá Xml.

Mas sencillo imposible, ¿No?.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *