[ASP.NET Web API] Respondiendo en JSON
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:
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:
Saludos
01/29/2013 en 15:13
[…] [ASP.NET Web API] Respondiendo en JSON […]
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.
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