EAS Latam Academy Logo EAS Latam

Módulo 3: Integración Fullstack y Despliegue

Integración del Backend C# con el Frontend Astro/React

Este módulo se enfoca en cómo conectar tu API de C# (ASP.NET Core) con tu frontend construido con Astro y React, y cómo preparar tu aplicación para el despliegue.

Comunicación entre Frontend y Backend

El frontend (Astro/React) se comunica con el backend (C# API) a través de solicitudes HTTP. Los puntos clave de integración incluyen:

  • Peticiones HTTP: Utilizar fetch o librerías como axios en React para hacer GET, POST, PUT, DELETE a los endpoints de la API.

  • JSON: El formato de intercambio de datos estándar entre el frontend y el backend.

  • Manejo de CORS: Es fundamental configurar CORS (Cross-Origin Resource Sharing) en tu API de ASP.NET Core para permitir que el frontend, que se ejecuta en un dominio diferente, pueda hacer solicitudes al backend.

    // En Startup.cs o Program.cs (ASP.NET Core)
    builder.Services.AddCors(options =>
    {
        options.AddDefaultPolicy(
            policy =>
            {
                policy.WithOrigins("http://localhost:3000") // URL de tu frontend Astro
                      .AllowAnyHeader()
                      .AllowAnyMethod();
            });
    });
    
    // ...
    
    app.UseCors();

Autenticación y Autorización

Para proteger tu API y tus recursos, necesitas implementar mecanismos de autenticación y autorización.

  • Tokens JWT (JSON Web Tokens): Un método común para la autenticación sin estado. El usuario inicia sesión, el backend emite un JWT, y el frontend lo almacena y lo envía en cada solicitud para autenticar al usuario.
  • OAuth 2.0: Un framework de autorización que permite a una aplicación obtener acceso limitado a una cuenta de usuario en un servicio HTTP.

Manejo de Errores

Implementa un manejo robusto de errores tanto en el frontend como en el backend.

  • Backend: Retornar códigos de estado HTTP apropiados (4xx para errores del cliente, 5xx para errores del servidor) y mensajes de error descriptivos en formato JSON.
  • Frontend: Capturar errores de la API, mostrar mensajes al usuario y manejar diferentes estados de la UI (ej. loading, error, success).

Despliegue de Aplicaciones Fullstack

Desplegar una aplicación fullstack implica poner tanto el frontend como el backend a disposición del público.

Estrategias de Despliegue

  1. Backend (C# ASP.NET Core API):

    • Servicios Cloud: Azure App Service, AWS Elastic Beanstalk, Google Cloud Run/App Engine.
    • Contenedores: Docker y Kubernetes (Azure Kubernetes Service, AWS EKS, Google GKE) para escalabilidad y portabilidad.
    • Servidores Virtuales: VPS tradicional (Ubuntu, Windows Server) con Nginx o IIS.
  2. Frontend (Astro/React):

    • Hosting Estático: Netlify, Vercel, GitHub Pages, Cloudflare Pages. Ideal para Astro que genera mucho HTML estático.
    • Servicios Cloud: Integrar el build estático con Azure Static Web Apps, AWS Amplify Console, Google Cloud Storage + CDN.

Variables de Entorno

Utiliza variables de entorno para gestionar la configuración sensible y específica del entorno (ej. claves de API, cadenas de conexión a la base de datos, URLs del backend).

  • ASP.NET Core: .env files (con paquetes adicionales), configuración de proveedores de entorno.
  • Astro/React: .env files, importación de variables en el build para Astro, o acceso a process.env en React (con cuidado en componentes de cliente).

Conclusión

La integración y el despliegue de una aplicación fullstack requieren una comprensión clara de la comunicación HTTP, la seguridad y las estrategias de hosting. Al aplicar las mejores prácticas en cada etapa, puedes construir y lanzar aplicaciones web completas y eficientes.

¿Listo para el desafío?

Has revisado la teoría. Ahora es momento de poner a prueba tus conocimientos.

Iniciar Desafío