APIs Arquitectura de Software Technology
.NET Core

Prueba de concepto de realización de una api en la infraestructura de .NET Core.

La arquitectura es Cross-platform compartiendo lenguajes y librerías para los diferentes entornos para los que está disponible, evitándose tiempo de desarrollo y teniendo que aprender menos cantidad de tecnologías para ser capaces de desarrollar en más entornos diferentes. Nosotros trabajaremos con una api web utilizando ASP. NET

El Entorno utilizado ha sido windows 10 con visual studio y sus herramientas como un sql server embebido o las herramientas de instalación rápida de paquetes.

Se puede utilizar tanto en linux como en mac (con visual studio for mac) o con visual studio code (multiplataforma) conjunto con el CLI dotnet.

Instalación y configuración

Para la instalación se ha seguido el siguiente tutorial donde hay diferentes maneras de realizar la instalación: https://docs.microsoft.com/es-es/dotnet/core/install/sdk?pivots=os-windows

En mi caso he seguido la guía de instalación en windows con visual studio.

* Cabe destacar que visual studio es de pago pero hay versión libre (Community Edition) aunque para tener la versión más allá de 30 días deberemos loguearnos con un correo electrónico.

  • Para comprobar que está instalado correctamente desde una consola utilizar el siguiente comando: dotnet –version

* dotnet será el CLI  de .NET core con el que se pueden usar todas las herramientas que vienen con el framework

Construcción API

Realizaremos una api básica con algunas características extras para ver el funcionamiento de la infraestructura .NET 

Abrimos el visual studio y le indicamos a crear un proyecto

Le indicamos que vamos a crear una aplicación web en ASP .NET Core

Seleccionamos nombre y ubicación y en la siguiente pantalla indicamos que creamos una api en la última versión que a la hora de hacer esta presentación es la 3.1

Con esto ya tendríamos un modelo WeatherForecast.cs y un controller WeatherForecastController.cs por lo que podríamos arrancar el proyecto y probar la api creada, pero nosotros para crearlo todo desde cero nos disponemos a borrar estos archivos.

Instalación herramientas necesarias

Para poder utilizar toda el potencial que nos ofrece .NET Core necesitaremos una serie de herramientas.

Lo primero es instalar Entity Framework Core (ORM de .NET Core):

Desde una consola ejecutar:  ‘dotnet tool install –global dotnet-ef’

Para comprobar que se ha instalado correctamente:

Y a continuación vamos a instalar dos herramientas desde el administrador de paquetes NuGet que nos ofrece visual studio 

*estas herramientas se pueden instalar también con el cli “dotnet” en la documentación de .NET Core está toda la información

Para acceder al podemos dar click derecho encima del nombre de nuestro proyecto y click en administrador de paquetes NuGet.

La primera herramienta será Microsoft.EntityFrameworkCore.SqlServer
La seleccionamos, seleccionamos el proyecto y le damos a instalar.
Hacemos lo mismo con: Microsoft.EntityFrameworkCore.Tools

Estas dos herramientas las utilizamos ya que en este proyecto vamos a hacer uso del gestor de bbdd sql server y de las migraciones y manejo de la bbdd.

Lorem fistrum por la gloria de mi madre esse jarl aliqua llevame al sircoo. De la pradera ullamco qué dise usteer está la cosa muy malar.

Lorem fistrum por la gloria de mi madre esse jarl aliqua llevame al sircoo. De la pradera ullamco qué dise usteer está la cosa muy malar.

BBDD

Para poder tener una api “real” vamos a usar base de datos para almacenar la información, para esto necesitamos crear un contexto de base de datos que usaremos para poder hacer peticiones a la bbdd.

Simplemente tenemos que mapear los modelos que hayamos creado configurándolo de la manera estándar y heredamos de DbContext. Para poder hacer inyección de dependencias nos vamos al archivo Startup.cs y en la parte de la configuración de servicios añadimos la clase creada previamente.

Una vez tenemos esto vamos a configurar la bbdd, para ello vamos al archivo de configuración (app.settings.json) y añadimos la información para la conexión de la bbdd con el nombre de la variable que hayamos puesto en la configuración de servicios

Vamos a crear la bbdd APICloudAppiBBDD 

En este caso vamos a hacer uso del sql server embebido que trae el visual studio para tener nuestra bbdd ahí localizada.
Ahora llega la parte que quizá es más interesante, vamos a crear la bbdd a partir de nuestras entidades creadas con una herramienta que nos ofrece .NET Core.
Esto se llama Migration y es una clase de c# que contiene las acciones (crear tabla, campos, relaciones…) que se van a hacer contra la base de datos.
Abrimos la consola de administrador de paquetes (herramientas->administrador de paquetes NuGet-> Consola del administrador de paquetes)

Y escribimos Add-Migration Initial (Initial es el nombre de la migración que quieras crear).

Con esto se crea una carpeta llamada Migrations con un archivo cs que si lo abrimos vemos que contiene el código acorde con las entidades.

Y para que este código se ejecute y genere nuestra base de datos utilizamos desde la consola abierta previamente el siguiente comando: Update-database (lo que hace es actualizar la bbdd según las migraciones que tengamos creadas)

Para ver nuestras tablas y campos creados vamos a ver->explorador de objetos sql server.

Swagger y configuración de arranque

Como añadidos finales a la api vamos a añadir swagger:

Instalando desde la consola del administrador de paquetes el siguiente comando:

Install-Package Swashbuckle.AspNetCore

Y configurándolo como en la imagen.
Generamos un controlador que contiene un crud por cada entidad, Desde la función Configure del Startup.cs exponiendo en qué endpoint es accesible este swagger. Para terminar podemos configurar en que ruta queremos que se arranque nuestro proyecto desde el launchSettings.json. Indicando que queremos que arranque en el endpoint /api en la configuración de IIS Express.

Conclusiones

Hemos podido ver que hacer una API en .NET Core es bastante sencillo debido a las facilidades que ofrece con las diferentes herramientas que se proponen aquí.

Haciendo hincapié en las migraciones pudiendo crear una bbdd muy fácil evitándose pérdidas de tiempo en entornos y dedicándole tiempo a lo necesario realmente que es el desarrollo en sí.

// ¿Quieres saber más sobre APIs en .NET CORE?

¡Ponte en contacto!

Author

CloudAPPi

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *