Skip to main content

Command Palette

Search for a command to run...

Quinto paso y final: Angular

Published
2 min read

Integración Angular + ASP.NET API

Fecha: 6 de setiembre
Hora de inicio: 7:00 p.m.
Hora de finalización: 1:00 a.m. (7 de setiembre)

Código final

insertar.ts – Lógica de inserción con mensajes específicos

ts

insertar(): void {
  this.empleadoService.insertar({ nombre: this.nombre, salario: this.salario }).subscribe(res => {
    switch (res.codigo) {
      case 1:
        this.mensaje = 'Empleado insertado correctamente';
        this.exito = true;
        setTimeout(() => this.router.navigate(['/']), 1500);
        break;
      case -2:
        this.mensaje = 'Error: El nombre ya está registrado';
        this.exito = false;
        break;
      case -1:
        this.mensaje = 'Error: El salario debe ser mayor a cero';
        this.exito = false;
        break;
      default:
        this.mensaje = 'Error desconocido';
        this.exito = false;
    }

    this.nombre = '';
    this.salario = 0;
  });
}

Program.cs – Configuración de CORS para permitir Angular

csharp

builder.Services.AddCors(options =>
{
    options.AddPolicy("DevPolicy", policy =>
    {
        policy.WithOrigins("http://localhost:4200")
              .AllowAnyHeader()
              .AllowAnyMethod();
    });
});

var app = builder.Build();
app.UseCors("DevPolicy");
app.MapControllers();

angular.json – Activación de Bootstrap

json

"styles": [
  "node_modules/bootstrap/dist/css/bootstrap.min.css",
  "src/styles.scss"
]

Errores y soluciones

ErrorCausaSolución aplicada
NG0201: No provider found for _HttpClientFalta de HttpClientModule en AppModuleSe agregó provideHttpClient() en providers
CORS bloquea peticiones desde AngularAPI no tenía habilitado CORSSe configuró DevPolicy en Program.cs
Tabla sin formatoBootstrap no estaba cargadoSe instaló Bootstrap y se agregó en angular.json
Todos los errores se interpretaban como “nombre duplicado”Los case estaban invertidos en insertar.tsSe corrigió el orden de los case para reflejar correctamente los códigos
SqlException 10060Timeout por conexión fallida a Azure SQLSe revisó IP pública, firewall y cadena de conexión

Fuentes de Angular (docs)

Angular CORS error NG0201

Angular HttpClient setup

Quinto paso y final: Angular