Esta es una API de ejemplo construida con .NET 8, Entity Framework Core y PostgreSQL. Su propósito es demostrar una estructura básica usando los patrones de diseño Repository y Unit of Work.
- .NET 8
- ASP.NET Core Web API
- Entity Framework Core 8
- Npgsql (Proveedor de EF Core para PostgreSQL)
- Swagger (para documentación y pruebas de API)
- .NET 8 SDK instalado.
- PostgreSQL instalado y corriendo localmente.
- Una herramienta de gestión de base de datos como pgAdmin o DBeaver (opcional, pero recomendada).
Si este proyecto estuviera en un repositorio git, lo clonarías. Por ahora, simplemente crea la estructura de archivos y copia el código proporcionado.
Abre tu herramienta de SQL para PostgreSQL (como psql o pgAdmin) y crea una nueva base de datos.
CREATE DATABASE "GameDevDb";Abre el archivo appsettings.json y modifica la sección ConnectionStrings con tus credenciales de PostgreSQL.
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Port=5432;Database=GameDevDb;User Id=postgres;Password=tu_super_contraseña;"
}Importante: Reemplaza User Id y Password con tu usuario y contraseña de PostgreSQL.
Abre una terminal en la raíz del proyecto y ejecuta el siguiente comando para instalar la herramienta de línea de comandos de Entity Framework Core.
dotnet tool install --global dotnet-efSi ya la tienes instalada, puedes actualizarla con:
dotnet tool update --global dotnet-efLas migraciones son la forma en que EF Core actualiza el esquema de la base de datos para que coincida con tus modelos de entidades.
a. Crea la migración inicial:
Este comando leerá tu AppDbContext y las entidades, y generará código C# que representa el esquema de la base de datos.
dotnet ef migrations add InitialCreateVerás una nueva carpeta Migrations en tu proyecto.
b. Aplica la migración a la base de datos:
Este comando ejecutará el código de la migración para crear las tablas (Developers, Games) e insertar los datos iniciales (seeding) que definiste en OnModelCreating.
dotnet ef database update¡Tu base de datos ya está lista y poblada!
Ejecuta el siguiente comando desde la terminal en la raíz del proyecto.
dotnet runLa API se iniciará y estará escuchando en un puerto local (generalmente algo como https://localhost:7123 o http://localhost:5123). La terminal te mostrará la URL exacta.
Abre tu navegador y ve a la URL que te indicó la terminal, seguida de /swagger. Por ejemplo: https://localhost:7123/swagger.
Verás una interfaz de usuario donde podrás probar los diferentes endpoints:
GET /api/Developers: Devuelve la lista completa de desarrolladores con todos sus datos.GET /api/Developers/withgamecount: (Prueba este) Devuelve la lista de desarrolladores, pero en lugar de la lista de juegos, muestra solo un conteo. Esta es la consulta optimizada.POST /api/Developers: Te permite crear un nuevo desarrollador enviando un JSON en el cuerpo de la solicitud.