Forma facil de crear una Web Api
Bienvenidos a todos a este post en el que explicare de forma sencilla y rápida como crear un web-api, tengas o no experiencia en este lenguaje veras que es sencillo montar una siguiendo los siguientes pasos, a parte de aprender a crearla este post también te ayudara a comprender el funcionamiento interno de estas.
¿Que es una Web Api?
Antes de ponernos a explicar como crear la Web Api voy a explicar en una solo frase lo que es ina Api:Una Web Api es una interfaz de programacion que contine un conjunto de rutinas que nos devuelve datos tanto en formato JSON o formato XML
Lo primero de todo iniciaremos Visual Studio y seleccionaremos file/new Proyect, desplegaremos Visual C# y buscaremos dentro de web Aplication web ASP.net(NET FRAMEWORK) y llamaremos el proyecto como queramos.
Ahora en la siguiente ventana le indicaremos empty y marcaremos con un check Web Api
Despues crearemos en la carpeta Models la clase coche de la que sacaremos los datos cada coche dichos objetos tendrán un ID especifico ya que la api a parte de tener un método mediante en el cual indiquemos el id a buscar y nos tendrá que devolver dicho objeto
Lo siguiente que aremos será crear un fichero donde guardaremos el repositorio que accederá al modelo y tendrá los métodos de búsqueda.
El porque de crear esta clase es por la simple razon de no acceder al modelo ni crearlos en el controlador, en este tutorial perfectamente podriamos saltarnos este paso ya que los objetos los crearemos a mano pero no nos lo pordriamos saltar si los datos los obtuvieramos de una BBDD (Base de Datos). En nuestro caso a esta clase la llamaremos RepositoryCoche la cual tendrá una lista de Coches que rellenaremos en el constructor, un método que nos devolverá toda la lista y otro que nos devolverá uno en específico.
Creación del controlador
Despues de realizar todos los pasos , crearemos la información que queremos mostrar solo nos queda crear el controlador que nos devolverá dichos datos, es decir llegamos al meollo de la cuestión, primero nos posicionaremos en la carpeta Controllers que por defecto crea el proyecto y añadiremos una clase de tipo controller, se nos desplegara un menú en el que nos dará a elegir entre varios tipos de controllers pero el que nos importa es el que pone Web API Empty
En este lugar (Controlador) llamaremos al repositorio que nos va a dar los datos para que podamos mostrárselos al usuario.
Por ultimo nos dirigiremos al navegador ha hacer la prueba final, nos saltara una excepción ya que por defecto intentara buscar la vista Home/Index pero para ver si de verdad nos devuelve datos tenemos que escribir después del puerto en nuestro caso /api/Coche y /api/Coche/1
Cambio del formato
Perfecto la api ya es funcional pero me gustaría compartir un trozo de código que le dará más vida a vuestras futuras Web Apis y es la capacidad de indicarlas que tipo de datos nos devolverá ya que pueden darnos tanto XML como JSON, en nuestro caso le pediremos que nos devuelva en formato JSON, para ello nos dirigiremos al Global.asax y escribiremos la siguiente línea: GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear() y ya estaría, y si se quisiera solo XML en la línea de arriba cambiaríamos XmlFormatter por JsonFormatter.
Autor/a: Sergio Bárcena
Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin
Centro: Tajamar
Año académico: 2018-2019
Código / recursos utilizados / Otros datos de interés: https://github.com/SergioBMBP/Web-api