Una plantilla de API mínima de ASP .NET productiva
Este es un repositorio de plantillas que muestra cómo se puede implementar una API limpia con ASP.NET utilizando API mínimas. El enfoque en las 'características' en esta plantilla está en la productividad de Dev, las características reales de la API en sí se han mantenido básicas a propósito. Siéntase libre de copiar este repositorio o reutilizar partes de él, no olvide darle una estrella si lo hace.
Algunas características en esta plantilla:
- Arquitectura de corte vertical (agrupación basada en características en lugar de capas técnicas)
- Una configuración de prueba de integración fácil de usar y rápida para ejecutar que se ejecuta en segundos con la única dependencia que es Docker con el uso de TestExAMPLEPLESDOTNET
- Autenticación y autorización utilizando tokens JWT. Esto también es utilizado por las pruebas, lo que significa que puede verificar si su autenticación y autorización funcionan correctamente dentro de las pruebas.
- Listo para Operentelemetry
- LaunchProfile para el reloj Dotnet
- Construcción automatizada utilizando acciones de GitHub que verifica el formateo del código, construye y ejecuta las pruebas.
Pruebas de ejecución
Solo se requiere Docker para ejecutar las pruebas (Consejo: Podman es de uso gratuito). La primera ejecución puede tomar un poco más a medida que se descarga la imagen de Docker. Ejecute el siguiente comando para ejecutar las pruebas:
Ejecutando la aplicación
- Primero genere un JWT que pueda usar para pruebas locales:
dotnet user-jwts create --role " read " --role " write "
Nota: Los puntos finales de los trabajos y del departamento solo requieren autenticación, pero los puntos finales de los empleados requieren que tenga las reclamaciones correctas en el token JWT.
- Ejecute la base de datos utilizando el Docker-Compose.yaml proporcionado. Opcionalmente, también ejecute el tablero Aspire en el archivo de composición para ver fácilmente la salida de Operentelemetry.
- Ejecute la aplicación. Puede explorar los puntos finales con Swagger en
https://localhost:7162/swagger .