ASP.NET Web API (Parte 1)

Hace poco anuncié la release de ASP.NET MVC 4 Beta. ASP.NET MVC4 es una actualización con un montón de nuevas características. Una de las características que más me gustan es el soporte para crear "Web APIs". En este post es el primero de unos cuantos en los que veremos cómo aprovecharnos de esta nueva funcionalidad.Web APIs

Los últimos años las APIs web han sido muy utilizadas - servicios que se exponen sobre HTTP en lugar de con un formato estándar ( como SOAP o WS*). Exponer servicios de esta forma puede hacer más fácil la integración de la funcionalidad que exponen con un montón de dispositivos y clientes, incluso crear experiencias HTML más ricas usando JavaScript desde un navegador. La mayoría de sitios web exponen sus APIs Web (como Facebook, Twitter, Linknedin, Netflix, etc), y su uso está consiguiendo que cada vez se conecten más dispositivos y que las experiencias de usuario sean mucho más ricas.

El nuevo soporte de ASP.NET Web API nos permite crear de forma muy sencilla APIs Web que pueden ser accedidas desde un amplio número de clientes (desde navegadores usando JavaScript, hasta aplicaciones nativas en cualquier dispositivo/plataforma). ASP.NET Web API ofrece soporte para:

  • Modelo de programación HTTP moderno: Acceso directo a las peticiones y respuestas HTTP en nuestra API Web usando un modelo fuertemente tipado y claro. ADemás de soportar este modelo de programación HTTP en el servidor, también soportamos el mismo modelo de programación en el cliente con la nueva API HttpCliente que se puede usar para llamar a Web APIs desde cualquier aplicación .NET.
  • Negociación de contenidos: Web API tiene soporte integrado para la negociación de contenido - que permite al cliente y al servidor determinar el formato correcto que la API va a devolver. Ofrecemos soporte por defecto para JSON, XML y Form URL- encoded, y podemos extenderlo añadiendo nuestros propios formateadores, incluso podemos sustituir la estrategia  por defecto por la que queramos.
  • Composición de consultas: Web API nos permite soportar fácilmente la consulta a traves de convenciones OData URL. Cuando devolvemos un tipo IQueryable<T> desde nuestra Web Api, el framework ofrecerá soporte para OData sobre él - haciendo más sencilla la implementación de la paginación y la ordenación.
  • Model Binding y validaciones: Los model binders ofrecen una forma sencilla de extraer datos desde varias partes de una petición HTTP y convertir esos mensajes en objetos .NET que se pueden usar en la acciones de la Web API. Soporta también el mismo modelo de binding y validación que ASP.NET MVC soporta hoy.
  • Rutas: Web API soporta todas las capacidades de rutado de ASP.NET MVC y ASP.NET, incluyendo parámetros y restricciones. Web API también unas convenciones por defecto, que nos permiten crear clases que implementen Web APIs sin tener que aplicar atributos a nuestras clases o métodos. La configuración de una Web API se hace sólo por código - dejando nuestros archivos de configuración totalmente limpios.
  • Filtros: Web API nos permite usar y crear filtros (por ejemplo:[authorization]) que nos permite encapsular y aplicar comportamientos cross-cutting.
  • Mejorada la testabilidad: Más que poner detalles HTTP en objetos de contexto estáticos, las acciones de Web API pueden trabajar con instancias de HttpRequestmessage y HttpResponseMessage - dos objetos HTTP nuevos que (entre otras cosas) hacen que el testing sea mucho más fácil. Como ejemplo, podeis testear vuestras Web Apis sin tener que usar ningún framework de mocking.
  • Soporte IoC: Web API soporta el patrón de localización de servicios implementado por ASP.NET MVC, que nos permite resolver dependencias. Podéis integrar esto con un IoC Container o framework de inyección de dependencias para permitir una resolución limpia de dependencias.
  • Hosting Flexible: Las APIs Web se pueden hostear en cualquier aplicación ASP.NET (tanto en ASP.NET MVC como en ASP.NET Web Forms). También hemos diseñado el soporte de Web API para que también se pueda hostear/exponer en nuestros propios procesos si no queréis usar ASP.NET/IIS. Esto os da la máxima flexibilidad en cómo y donde usarlo.

Aprender mas:

Visitad www.asp.net/web-api para encontrar tutoriales sobre el uso de ASP.NET Web API. También podeis ver la charla y la demo de ASP.NET Web API en este video (dura unos 36 minutos).

En el próximo post veremos cómo crear una nueva API Web, cómo funciona y cómo podemos usarla desde un cliente.

Espero que sirva.

Scott.

P/S: Ademas del blog, uso Twitter para compartir enlaces: @scottgu

Traducido por: Juan María Laó Ramos. Sígueme @juanlao

Artículo original.

3 pensamientos en “ASP.NET Web API (Parte 1)

  1. Pingback: Aprendiendo ASP.NET Web API… gratis y en video!! | Jersson on the block!

  2. Pingback: Aprendiendo ASP.NET Web API… gratis y en video!! - Jersson on Geeks·ms

Deja un comentario