Skip to main content

Command Palette

Search for a command to run...

🚀 Usar un Automapper en un API en .NET y desplegarla en App Service 🛠️

Simplifica tus procesos de mapeo y despliegue en Azure

Published
🚀 Usar un Automapper en un API en .NET y desplegarla en App Service 🛠️
J

Ingeniero de software senior con más de 12 años de experiencia, especializado en el desarrollo de aplicaciones empresariales y soluciones en Azure. Mi trayectoria incluye el diseño e implementación de Aplicaciones Web, Desktop, API's y Microservicios escalables, y desarrollo de arquitecturas robustas basadas en .NET.

Email: jesusegarcia@gmail.com CV Online: https://app.onlinecv.es/share/07cd112ed04b4f6db4904dca3be52244

Introducción

En el desarrollo de aplicaciones, el mapeo de objetos puede volverse repetitivo y propenso a errores. AutoMapper en .NET ofrece una solución eficiente para este problema. En este post, aprenderemos cómo integrar AutoMapper en una API en .NET y desplegarla en Azure App Service.

¿Qué es este servicio?

AutoMapper es una biblioteca de .NET diseñada para ayudar en el mapeo de objetos de una forma rápida y segura, eliminando la necesidad de escribir código repetitivo. Azure App Service es un servicio PaaS de Microsoft que permite desplegar aplicaciones web de manera sencilla y escalable.

¿Qué cubrirá este post?

  • Configuración de AutoMapper en una API en .NET.

  • Creación de perfiles de mapeo.

  • Despliegue de la API en Azure App Service.

  • Pruebas de funcionamiento en la nube.

¿Por qué es importante para los arquitectos de soluciones?

La integración de AutoMapper y Azure App Service en tus proyectos de API en .NET optimiza el desarrollo y despliegue, asegurando una entrega más rápida y confiable de aplicaciones. Facilita el mantenimiento del código y mejora la eficiencia del equipo.

¿Qué problemas puede resolver?

  • Reducción de código repetitivo: AutoMapper minimiza la necesidad de escribir código de mapeo manual.

  • Despliegue sencillo y escalable: Azure App Service permite desplegar la API de manera rápida y escalable, con gestión integrada de recursos y monitoreo.

  • Mantenimiento simplificado: Facilita la actualización y mantenimiento del código al manejar automáticamente los cambios en las estructuras de datos.

Ejercicio en Práctica

  1. Para este ejercicio, configuraremos un App Service y una base de datos en Azure. Implementaremos una API que almacenará datos en la base de datos en Azure.

    Primero, desplegaremos un App Service, que es una plataforma completamente administrada que permite crear, desplegar y escalar aplicaciones web y API de manera rápida y eficiente.

  1. Luego, configuraremos una base de datos en Azure, utilizando Azure SQL Database, que proporciona una base de datos relacional gestionada en la nube con alta disponibilidad, escalabilidad y seguridad integrada.

  1. Para instalar AutoMapper en nuestra API en Visual Studio 2022, debemos seguir estos pasos:

    • Hacer clic derecho en el proyecto dentro del Explorador de Soluciones.
  1. Seleccionar la opción "Administrar paquetes NuGet" del menú contextual.

  1. En la ventana "Administrar paquetes NuGet", seleccionar la pestaña "Examinar". Buscar el paquete AutoMapper.Extensions.Microsoft.DependencyInjection.

    Hacer clic en "Instalar" para añadir el paquete al proyecto.

  1. En nuestro archivo porgram.cs añadiremos esta linea para registrar nuestro automapper

    Esta línea de código asegura que AutoMapper se configure correctamente utilizando el ensamblado de entrada, permitiendo así la inyección de dependencias de AutoMapper en el proyecto

  1. Ahora, crearemos un archivo MappingProfile para definir el mapeo de los productos que insertaremos en la base de datos. Este archivo se encargará de configurar las transformaciones entre nuestros DTOs y entidades.

    Este código configura un mapeo entre ProductoDTO y Producto, transformando el campo Nombre a mayúsculas durante el mapeo. La opción ReverseMap() permite que el mapeo funcione en ambas direcciones, facilitando tanto la conversión de DTO a entidad como de entidad a DTO.

  1. Como estamos utilizando el patrón UnitOfWork, configuraremos nuestro archivo de repositorio para manejar la adición de productos mediante AutoMapper. A continuación se muestra cómo debería configurarse el archivo:

  1. En este código, el ProductoRepository hereda de GenericRepository<ProductoDTO> y implementa la interfaz IProductoRepository. El constructor del repositorio recibe una instancia de IMapper para realizar el mapeo de ProductoDTO a Producto. En el método AddAsync, utilizamos AutoMapper para convertir el ProductoDTO en una entidad Producto, que luego se añade al contexto de la base de datos y se guardan los cambios de manera asíncrona.

  1. Ahora ya tenemos el API y la vamos a publicar en nuestro App Service

  1. Verificamos que en efecto ya se encuentra desplegada

  1. Verificamos lso valores que existen el la tabla productos

  1. Ahora realizaremos una llamada a la API para insertar un nuevo producto. Veremos que el nombre del producto, que inicialmente está en "Title Case", se insertará en mayúsculas gracias a la configuración de AutoMapper.

  1. Volvemos a consultar la tabla productos y vemos que en efecto se inserto el producto con el nombre en mayusculas.

Casos de uso reales

  • Aplicaciones empresariales: Donde los datos necesitan ser transformados entre múltiples capas.
  • Microservicios: Que requieren una integración rápida y eficiente de distintos servicios.
  • Sistemas heredados: Al migrar datos de sistemas antiguos a nuevas aplicaciones.

Buenas prácticas

  • Configura perfiles de AutoMapper: Define claramente los perfiles de mapeo para mantener el código limpio y organizado.

  • Prueba exhaustivamente: Asegúrate de que todos los mapeos funcionen correctamente antes del despliegue.

  • Monitorea el rendimiento: Utiliza las herramientas de monitoreo de Azure para supervisar la salud y el rendimiento de tu aplicación.

Herramientas de apoyo

  • Visual Studio: Para el desarrollo de la API.

  • Azure CLI: Para la gestión y despliegue de servicios en Azure.

  • Postman: Para probar y validar los endpoints de la API.

Url de apoyo

Consideraciones finales

La integración de AutoMapper en una API en .NET y su despliegue en Azure App Service puede ahorrar tiempo y esfuerzo en el desarrollo, a la vez que ofrece una solución escalable y fácil de mantener. Sigue las mejores prácticas y utiliza las herramientas de apoyo para garantizar un desarrollo y despliegue exitosos.