dotnet-api-boilerplate
Un proyecto .Net 5.0 WebAPI Boilerplate / Template. Repositorios, arrogancia, mapeador, serilog y más implementados.
El objetivo de este proyecto es ser un inicio de su Webapi .NET, implementando los patrones y tecnologías utilizados más comunes para una API RESTful en .NET, lo que facilita su trabajo.
Cómo correr
- Use esta plantilla (GitHub) o clon/descargue en su lugar de trabajo local.
- Descargue el último .NET SDK y Visual Studio/Code.
Autónomo
- Es posible que necesite una instancia en ejecución de MSSQL, con migraciones apropiadas inicializadas.
- Puedes ejecutar solo el DB en Docker. Para eso, debe cambiar su cadena de conexión a "servidor = 127.0.0.1; database = master; user = sa; contraseña = yourpassword123" y ejecutar el siguiente comando:
docker-compose up -d db-server . Al hacer eso, la aplicación podrá llegar al contenedor del servidor DB. - Si lo desea, puede cambiar el DatabaseExtension para usar UseInMemoryDatabase, en lugar de MSSQL.
- Vaya a la carpeta SRC/Boilerplate.API y ejecute
dotnet run , o, en Visual Studio, establezca el proyecto API como inicio y ejecución como consola o Docker (no IIS). - Visite http: // localhost: 5000/api-docs o https: // localhost: 5001/api-docs para acceder a la arrogancia de la aplicación.
Estibador
- Ejecute
docker-compose up -d en el directorio de raíz o, en Visual Studio, establezca el proyecto Docker-Compose como inicio y ejecución. Esto debería iniciar la aplicación y DB.
- Para Docker-Compose, debe ejecutar este comando en la carpeta raíz:
dotnet dev-certs https -ep https/aspnetapp.pfx -p yourpassword Reemplaza "YourPassword" con algo más en este comando y el archivo Docker-compose.override.yml. Esto crea el certificado HTTPS.
- Visite http: // localhost: 5000/api-docs o https: // localhost: 5001/api-docs para acceder a la arrogancia de la aplicación.
Pruebas de ejecución
En la carpeta raíz, ejecute dotnet test . Este comando intentará encontrar todos los proyectos de prueba asociados con el archivo SLN.
Este proyecto contiene:
- Swaggerui
- EntityFramework
- Autófano
- Repositorio genérico (para arrancar fácilmente un repositorio de crud)
- Serilog con registro de solicitud y sumideros fácilmente configurables
- Inyección de dependencia de .NET
- Filtrado de recursos
- Compresión de respuesta
- CI (acciones de Github)
- Pruebas unitarias
- Pruebas de integración
- Soporte de contenedores con Docker y Docker-Compose
Estructura de proyectos
- Servicios
- Esta carpeta almacena sus API y cualquier proyecto que envíe datos a sus usuarios.
- Boilerplate.api
- Este es el principal proyecto API. Aquí están todos los controladores e inicialización para la API que se utilizará.
- compuesto de acopolador
- Este proyecto existe para permitirle ejecutar Docker-Compose con Visual Studio. Contiene una referencia al archivo Docker-Compose y construirá todas las dependencias de los proyectos y lo ejecutará.
- Solicitud
- Esta carpeta almacena todas las transformaciones de datos entre su API y su capa de dominio. También contiene la lógica de su negocio.
- Dominio
- Esta carpeta contiene sus modelos de negocio, enums e interfaces comunes.
- Boilerplate.domain.core
- Contiene la entidad base para todas las demás entidades de dominio, así como la interfaz para la implementación del repositorio.
- Boilerplate.domain
- Contiene modelos de negocio y enums.
- Infra
- Esta carpeta contiene todos los repositorios de acceso a datos, contextos de bases de datos, cualquier cosa que llegue a los datos externos.
- Boilerplate.infraestructura
- Este proyecto contiene el DBContext, una implementación genérica del patrón de repositorio y un repositorio de héroe (clase de dominio).
Adoptar a su proyecto
- Retire/cambie el nombre de todas las cosas relacionadas con el héroe a sus necesidades.
- Cambie el nombre de la solución, los proyectos, los espacios de nombres y el conjunto de reglas para su uso.
- Cambie DockerFile y Docker-Compose.yml a sus nuevos nombres de carpetas CSProj/.
- ¡Dale a este repositorio una estrella!
Migraciones
Para ejecutar migraciones en este proyecto, ejecute el siguiente comando en la carpeta raíz:
-
dotnet ef migrations add InitialCreate --startup-project .srcBoilerplate.Api --project .srcBoilerplate.Infrastructure
Este comando establecerá el punto de entrada para la migración (el responsable de seleccionar el DBProvider {SQLServer, MySQL, etc} y la cadena de conexión) y el proyecto en sí será la infraestructura, que es donde está el DBContext.
Si te gusta, dale una estrella
Si esta plantilla fue útil para usted, o si aprendió algo, ¡por favor dale una estrella!
Gracias
Este proyecto tiene una gran influencia de https://github.com/lkurzyniec/netcore-boilerplate y https://github.com/eduardopires/equinoxproject. Si tiene tiempo, visite estos repositorios y dales una estrella también.
Acerca de
Esta plantilla/plantilla fue desarrollada por Yan Pitangui bajo la licencia MIT.