API RESTful minimalista construida con .NET 10 que demuestra las mejores prácticas de desarrollo, seguridad y operaciones (DevSecOps).
- ✅ Minimal API con .NET 10
- ✅ Documentación OpenAPI/Swagger interactiva
- ✅ Pruebas de Integración con WebApplicationFactory
- ✅ Clean Architecture y SOLID principles
- ✅ Type-Safe con records y nullable reference types
- ✅ Cobertura de pruebas ~90%
DevSecOpsDemo/
├── DevSecOpsDemo.Api/ # API principal
│ ├── Models/ # DTOs y modelos de datos
│ └── Program.cs # Configuración y endpoints
│
├── DevSecOpsDemo.Tests/ # Pruebas de integración
│ ├── Endpoints/ # Tests por endpoint
│ └── Infrastructure/ # Utilidades de testing
│
├── ARQUITECTURA.md # Documentación técnica completa
└── DevSecOpsDemo.sln # Solución Visual Studio
- .NET 10 SDK
- Editor de código (Visual Studio, VS Code, Rider)
# Clonar el repositorio
git clone https://github.com/syntaxiscorp/cursoia-seigi.git
cd cursoia-seigi
# Restaurar dependencias
dotnet restore
# Ejecutar la API
dotnet run --project DevSecOpsDemo.Api
# La API estará disponible en: http://localhost:5003# Ejecutar todas las pruebas
dotnet test
# Ejecutar con cobertura
dotnet test /p:CollectCoverage=trueAccede a la documentación interactiva en: http://localhost:5003/swagger
JSON Schema: http://localhost:5003/swagger/v1/swagger.json
Lee la Documentación de Arquitectura para detalles completos sobre patrones, pruebas y mejores prácticas.
| Método | Ruta | Descripción |
|---|---|---|
GET |
/api/health |
Health check del servicio |
POST |
/api/suma |
Suma de dos números enteros |
curl http://localhost:5003/api/healthRespuesta:
{
"status": "ok"
}curl -X POST http://localhost:5003/api/suma \
-H "Content-Type: application/json" \
-d '{"a": 5, "b": 3}'Respuesta:
{
"resultado": 8
}El proyecto incluye 14 pruebas de integración que cubren:
- ✅ Códigos de estado HTTP correctos
- ✅ Validación de respuestas JSON
- ✅ Manejo de errores (body nulo, JSON inválido)
- ✅ Content-Type headers
- ✅ Casos edge (overflow, números negativos)
Cobertura: ~90%
- Framework: .NET 10
- API: ASP.NET Core Minimal APIs
- Documentación: Swashbuckle.AspNetCore (Swagger/OpenAPI)
- Testing: xUnit + WebApplicationFactory
- Cobertura: coverlet.collector
| Capa | Tecnología |
|---|---|
| Presentation | Minimal API Endpoints |
| Business Logic | C# Records & Methods |
| Data Models | Immutable Records |
| Testing | xUnit + Integration Tests |
| API Docs | OpenAPI 3.0 / Swagger UI |
Warning
Esta API es para propósitos demostrativos y no incluye autenticación ni autorización en su versión actual.
Para producción, se recomienda implementar:
- Autenticación JWT
- Rate Limiting
- CORS policies
- HTTPS obligatorio
- Validación de inputs
- Autenticación y autorización
- Persistencia con Entity Framework Core
- Dockerización
- CI/CD con GitHub Actions
- Deploy a Kubernetes
- Monitoreo con Application Insights
- Más operaciones matemáticas
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto es de código abierto para propósitos educativos.
DevSecOps Team
Email: team@devsecops.demo
- Comunidad .NET
- Documentación de Microsoft
- xUnit contributors
⭐ Si te ha gustado este proyecto, dale una estrella en GitHub!