[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

Deja un comentario