Skip to content

Proyecto backend creado con C# y EntityFramework CodeFirst para ejemplificar los endpoints de "Desarrolladores de videjuegos" (compañías) y de "Videojuegos" creados por estas compañías. Contiene toda la implementación de Swagger para que pueda ser probado desde el navegador.

Notifications You must be signed in to change notification settings

alexpardox/GamesAndDevelopersAPI

Repository files navigation

Proyecto: GameDev API con .NET y PostgreSQL

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.

Captura de pantalla 2025-09-08 a la(s) 12 39 51 p m

🚀 Tecnologías Utilizadas

  • .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)

✅ Requisitos Previos

  • .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).

⚙️ Pasos para la Configuración y Ejecución

1. Clona el Repositorio

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.

2. Crea la Base de Datos

Abre tu herramienta de SQL para PostgreSQL (como psql o pgAdmin) y crea una nueva base de datos.

CREATE DATABASE "GameDevDb";

3. Configura la Cadena de Conexión

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.

4. Instala las Herramientas de EF Core

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-ef

Si ya la tienes instalada, puedes actualizarla con:

dotnet tool update --global dotnet-ef

5. Aplica las Migraciones

Las 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 InitialCreate

Verá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!

6. Ejecuta la Aplicación

Ejecuta el siguiente comando desde la terminal en la raíz del proyecto.

dotnet run

La 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.

7. Prueba la API con Swagger

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.

About

Proyecto backend creado con C# y EntityFramework CodeFirst para ejemplificar los endpoints de "Desarrolladores de videjuegos" (compañías) y de "Videojuegos" creados por estas compañías. Contiene toda la implementación de Swagger para que pueda ser probado desde el navegador.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages