Webapi PDF
Webapi PDF
Implementando Web
APIs en ASP.NET MVC
Manual de estudiante
Diciembre de 2017
Soporte técnico:
[email protected]
http://ticapacitacion.com/promociones/webapi.html
2 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
Contenido
Acerca del módulo ........................................................................................................................ 6
Audiencia ..............................................................................................................................................6
Objetivos ..............................................................................................................................................6
Requerimientos ....................................................................................................................................6
Lección 1 Desarrollando una API Web con ASP.NET Web API ......................................................... 7
¿Qué es Web API? ................................................................................................................................8
Creando una API Web con el Framework ASP.NET Web API ............................................................ 10
Valores devueltos por los métodos de Acción .................................................................................. 17
Formato de los datos devueltos ........................................................................................................ 21
Formateadores de contenido devuelto (Media Formatters) ............................................................ 22
Soporte a BSON en ASP.NET Web API 2.1 ......................................................................................... 28
Servicios RESTful................................................................................................................................ 30
Lección 2 Enrutamiento en ASP.NET Web API .............................................................................. 33
Tablas de Enrutamiento .................................................................................................................... 34
Variaciones de enrutamiento ............................................................................................................ 37
Enrutamiento por el nombre de Acción............................................................................................ 39
Atributo NonAction ........................................................................................................................... 40
Enrutamiento por atributo en ASP.NET Web API 2........................................................................... 41
Prefijos de Rutas................................................................................................................................ 44
Restricciones en las Rutas ................................................................................................................. 46
Restricciones personalizadas de rutas .............................................................................................. 48
Parámetros opcionales del URI y valores predeterminados ............................................................. 50
Nombres de Ruta .............................................................................................................................. 51
Orden de las Rutas ............................................................................................................................ 53
Lección 3 Invocando servicios ASP.NET Web API con Microsoft ASP.NET Web API Client............... 55
Configurando el servicio Web API para pruebas locales................................................................... 56
Microsoft ASP.NET Web API Client ................................................................................................... 58
Obteniendo un resultado (HTTP GET) ............................................................................................... 61
Obteniendo un resultado desde aplicaciones ASP.NET MVC ........................................................... 63
3 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
5 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
Audiencia
Este módulo está dirigido a desarrolladores con experiencia en el desarrollo de aplicaciones web con
ASP.NET MVC y que desean implementar APIs web para ser consumidas por clientes Xamarin, .NET,
UWP o JavaScript y jQuery.
Objetivos
Al finalizar este módulo, los participantes contarán con las habilidades y conocimientos para:
• Desarrollar un servicio ASP.NET Web API.
• Describir las distintas opciones de enrutamiento en ASP.NET Web API.
• Invocar un servicio Web API desde aplicaciones .NET.
• Invocar un servicio Web API desde aplicaciones Android, iOS y Windows Phone con Xamarin.
• Invocar un servicio Web API desde aplicaciones Universal Windows Platform (Windows 10)
• Invocar un servicio Web API desde aplicaciones JavaScript y jQuery.
Requerimientos
Para la realizar los ejercicios de este módulo, es necesario contar con lo siguiente:
• Un equipo de desarrollo con Visual Studio 2015 o posteriores. Puede utilizarse la versión
gratuita Visual Studio Community que puede descargarse desde el siguiente enlace:
https://www.visualstudio.com/community/
6 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
Lección 1
Desarrollando una API Web con ASP.NET Web API
El Framework Web API de ASP.NET facilita la creación de APIs para aplicaciones móviles, aplicaciones
de escritorio, servicios Web, aplicaciones Web y otras aplicaciones. Al crear una API Web permitimos
que la información de nuestra aplicación Web esté disponible para que otros desarrolladores puedan
utilizarla en sus sistemas.
Cada aplicación Web tiene una metodología funcional diferente, esta diferencia puede causar
problemas de interoperabilidad entre las aplicaciones.
Los servicios REST tienen un diseño ligero y el Framework Web API ayuda a implementar servicios
REST para solucionar los problemas de interoperabilidad. Para implementar servicios REST es
necesario conocer cómo utilizar los diferentes métodos de enrutamiento que ASP.NET proporciona.
Objetivos de la lección
Al finalizar esta lección, los participantes contarán con las habilidades y conocimientos para:
7 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
ASP.NET Web API es un Framework que forma parte de ASP.NET MVC y que permite construir APIs
habilitadas para REST. Las APIs habilitadas para REST ayudan a que sistemas externos utilicen la
lógica de negocios implementada en una aplicación, incrementando la reutilización de dicha lógica.
Web API facilita la comunicación de dos vías entre el cliente y el servidor a través de tareas tales
como:
Web API permite que los desarrolladores obtengan información de negocio mediante el uso de REST
sin crear peticiones XML complicadas tal como en los servicios SOAP. Web API recibe las peticiones
directamente en los URLs eliminando de este modo la necesidad de peticiones complicadas. Por
ejemplo, el siguiente URL obtiene información de una entidad Product con el identificador 1.
http://northwind.com/api/products/1
Web API utiliza el URL de las peticiones y obtiene resultados en formato JSON. JSON es un acrónimo
de JavaScript Object Notation y es un formato ligero para intercambio de datos. Para las personas
resulta de fácil lectura y escritura mientras que para las máquinas les resulta fácil analizarlo y
generarlo. JSON está basado en un subconjunto del lenguaje de programación JavaScript. Es un
formato de texto que es completamente independiente del lenguaje, pero utiliza convenciones que
son familiares para los programadores de lenguajes de la familia C, incluyendo C++, C#, Java,
JavaScript, Perl, Python y muchos otros. Estas propiedades hacen que JSON sea ideal para el
intercambio de datos.
8 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
Introducing JSON
http://json.org
El siguiente código muestra una respuesta de una petición Web API en formato JSON.
[{"Id":1,"Name":"Chai","Category":"Beverages","Price":18.0000},{"Id":2,"Name":"Cha
ng","Category":"Beverages","Price":19.0000},{"Id":3,"Name":"Aniseed
Syrup","Category":"Condiments","Price":10.0000}]
REST y Web API permiten que todos los diferentes tipos de aplicaciones, incluyendo aplicaciones
para dispositivos móviles, interactúen con servicios. En particular, REST y Web API proporcionan los
siguientes beneficios para aplicaciones móviles:
9 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
La siguiente imagen muestra la ventana New ASP.NET Project donde se ha seleccionado la plantilla
Empty para implementar ASP.NET Web API. Debemos notar que se ha seleccionado la casilla Web
API de la sección Add folders and core references for para generar la estructura de directorios
necesaria, así como para agregar las referencias de los Assemblies requeridos.
10 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
Después de que el proyecto haya sido creado, se mostrará una estructura de directorios similar a la
siguiente.
11 https://ticapacitacion.com
Desarrollo avanzado de aplicaciones
Implementando Web APIs en ASP.NET MVC
Web ASP.NET MVC
Después de crear el proyecto, será necesario agregar una clase API Controller que derive de
APIController.
Para agregar una nueva clase API Controller podemos seleccionar la opción Add/Controller… del
menú contextual de la carpeta Controllers como se muestra en la siguiente imagen.
En la ventana Add Scaffold podemos seleccionar alguna de las opciones Web API 2.
Las siguientes imágenes muestran las ventanas Add Scaffold y Add Controller para crear la clase API
Controller Products vacía a partir de la plantilla Web API 2 Controller - Empty.
12 https://ticapacitacion.com