[ASP.NET Web API] Respondiendo en JSON

Posted on Actualizado enn


Hola, pues este será un mini-post, donde simplemente voy a mostrar como podemos configurar el tipo de respuesta que deseamos den nuestros controladores, más en especifico los métodos que ellos tienen. Si por ejemplo tenemos el siguiente controlador:

public class ClientController : ApiController
{
	private readonly IEnumerable clients = new List() {
		new Client (){ ClientId = 1, Name = "Julio", Twitter = "@julitogtu"},
		new Client (){ ClientId = 2, Name = "Juan", Twitter = "@JuanKRuiz"},
		new Client (){ ClientId = 3, Name = "Nicolas", Twitter = "@nicolocodev"},

	};

	public IEnumerable GetAll()
	{
		return clients;
	}
}

Si por ejemplo, probamos en IE lo que obtenemos es un xml:

image

Y ahora, para trabajar en formato JSON lo que hacemos es eliminar la respuesta en tipo XML, así entonces en el Global.asax:

GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);

y si ahora lo probamos de nuevo en IE:

image

Saludos

3 comentarios sobre “[ASP.NET Web API] Respondiendo en JSON

    […] [ASP.NET Web API] Respondiendo en JSON […]

    @iuser escribió:
    07/30/2013 en 18:04

    Hola oye tengo dudas sobre esto ojala y puedas ayudarme. quiero realizar los servicios rest crud estoy utilizando c# y mysql hasta ahora solo he logrado el get, el delete me dice que es un metodo no permitido, por que pasa eso?

    capa de datos:

    public static bool Delete(int id)
    {
    StringBuilder sqlCommand = new StringBuilder();
    sqlCommand.Append(“DELETE FROM crg_prueba “);
    sqlCommand.Append(“WHERE “);
    sqlCommand.Append(“id = ?Id “);
    sqlCommand.Append(“;”);

    MySqlParameter[] arParams = new MySqlParameter[1];

    arParams[0] = new MySqlParameter(“?Id”, MySqlDbType.Int32);
    arParams[0].Direction = ParameterDirection.Input;
    arParams[0].Value = id;

    int rowsAffected = MySqlHelper.ExecuteNonQuery(
    ConnectionString.GetWriteConnectionString(),
    sqlCommand.ToString(),
    arParams);

    return (rowsAffected > 0);
    }

    capa de negocios:

    public static bool Delete(int id)
    {
    return DBPrueba.Delete(id);
    }

    implementacion:

    [WebInvoke(Method=”DELETE”, UriTemplate=”/user/”)]

    public bool delete()
    {
    return prueba.Delete(2);
    }

    de antemano gracias.

    Julio Avellaneda respondido:
    07/31/2013 en 10:15

    Hola amigo, si en algunoos casos el delete tiene problemas y toca “sobreescribir” el header, dejame hago un post al respecto.. saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s