Anexsoft | Blog y dictado de cursos de Tecnología

En este encontrarás tutoriales de tecnología como PHP, ASP.NET MVC, Front-End, entre otros y cursos exigentes de modalidad online que te ayudarán a crecer profesionalmente.

Web Api, trabajar con JSON y acciones con nombre personalizado
Actualizado el 21 Enero, 2016 y leído 2,049 veces
Calificación: 10.00 / 10

Web Api, trabajar con JSON y acciones con nombre personalizado

Anexsoft

Trabajando con JSON

Por defecto, cuando creo un proyecto Web Api, este retorna siempre la información serializada en XML. Lo que yo quiero es que lo haga en JSON, para ello nos vamos a App_Start/WebApiConfig.cs y agregamos la siguiente línea de código al método Register.

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services
    config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
}

 

Nombre personalizado para nuestras acciones

Por defecto, Web Api maneja un standard para implementar la acciones y acceder a ella, veamos el siguiente código:

public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/values/5
    [HttpDelete]
    public void Delete(int id)
    {
    }
}

Por ejemplo, si quiero acceder a la acción Get, lo que hago es acceder a esta URl api/values y por defecto la va a reconocer. Si le paso un entero a dicha URL reconocera la acción que tiene de .sobrecarga un entero.

 public string Get(int id) { return "value"; }

En Web Api, este standard representa los verbos que debe interpretar la cabecera de nuestro navegador para acceder a cada uno de ellos. Por lo tanto, al usar Get, estamos diciendo que es accesible mediante el método GET, así para los demás, los métodos o verbos usados son: GET, PUT, DELETE y POST. De esta manera, con estos 5 métodos tenemos resuelto las operacioens más básicas que necesitaramos implementar para nuestro aplicativo, es decir un CRUD.

Ahora si tu quieres acceder a dichas acciones como lo vienes haciendo en ASP.NET MVC, pues modificamos nuevamente nuestro WebApiConfig para que quede de la siguiente manera.

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

Ya esta, ahora soporta acciones personalizadas.

NOTA: ahora cuando crees una acción personalizada, por defecto va a implementar el método POST, así que, si queremos que dicha acción pueda ser accesible por el método GET le decimos mediante una etiqueta que acepete el verbo GET.

[AcceptVerbs("Get")]
public string Listar()
{
    return "Accion personalizada";
}

La URL de acceso vendría ser: api/values/listar

¡Adquiera ya!

  • Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#
  • Código de fuente de Red Social desarrollada en ASP.NET MVC

    Código de fuente de Red Social desarrollada en ASP.NET MVC
  • Software de Venta e Inventario hecho en PHP y Codeigniter

    Software de Venta e Inventario hecho en PHP y Codeigniter

Últimas publicaciones

Encuesta

¿Cómo nos conociste?

Síguenos

Estudia con nosotros y crece profesionalmente

Nuestros cursos han sido hecho en base a lo que demanda el mercado hoy en día.
La experiencia obtenida es la de un ambiente laboral.

Anexsoft
© 2017 Anexsoft, blog y cursos online de TI.