Fase 3: Refactorizado SignalR a un hook reutilizable (useSignalR) y conectado al Dashboard.

This commit is contained in:
2025-10-28 12:26:49 -03:00
parent 7eee798c99
commit 9be62937bd
8 changed files with 347 additions and 54 deletions

View File

@@ -1,35 +1,34 @@
// backend/src/Titulares.Api/Program.cs
using Titulares.Api.Data;
using Titulares.Api.Hubs; // Añadir este using
var builder = WebApplication.CreateBuilder(args);
// 1. Añadir servicios al contenedor.
// ===================================
// Añadimos los servicios para los controladores API
// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// Añadimos nuestro repositorio personalizado
builder.Services.AddSingleton<TitularRepositorio>();
// Añadimos los servicios de autorización (necesario para app.UseAuthorization)
builder.Services.AddAuthorization();
// Añadimos la política de CORS
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowReactApp", builder =>
{
builder.WithOrigins("http://localhost:5174")
builder.WithOrigins("http://localhost:5173")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
builder.Services.AddSignalR();
// Añadimos los servicios de autorización (necesario para app.UseAuthorization)
builder.Services.AddAuthorization();
// 2. Construir la aplicación.
// ==========================
var app = builder.Build();
@@ -43,15 +42,21 @@ if (app.Environment.IsDevelopment())
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
// COMENTAMOS LA REDIRECCIÓN HTTPS PORQUE TRABAJAMOS CON HTTP
// app.UseHttpsRedirection();
// Usamos la política de CORS que definimos
// 1. Activa el enrutamiento para que la app sepa a dónde va la petición.
app.UseRouting();
// 2. APLICA LA POLÍTICA DE CORS.
app.UseCors("AllowReactApp");
// Usamos la autorización
// 3. Usamos la autorización.
app.UseAuthorization();
// Mapeamos los controladores para que la API responda a las rutas
// 4. Mapeamos los endpoints (Controladores y Hubs).
app.MapControllers();
app.MapHub<TitularesHub>("/titularesHub");
app.Run();