es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Hay alguna forma de llamar a una aplicación de Spring Cloud utilizando Angular?

Estoy desarrollando una aplicación de Spring Cloud, pero la parte del frente está en Angular. ¿Existe alguna manera de llamar a una aplicación de Spring Boot que tiene un gateway de Spring Cloud con descubrimiento de servicios Eureka, utilizando la aplicación de Angular?

El servidor de descubrimiento registra mi aplicación de Spring Boot, así como el servicio del gateway, y quiero llamar a mis servicios REST utilizando Angular.

Intenté proporcionar el nombre del servicio en la llamada HTTP, pero eso no funciona.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, definitivamente puedes llamar a una aplicación de Spring Boot con Spring Cloud Gateway utilizando Angular. Solo necesitas configurar tu aplicación Angular para llamar a la URL del servicio de gateway en lugar del servicio backend directamente.

    Aquí están los pasos que puedes seguir:

    1. Agrega HttpModule en tu aplicación Angular.
    2. En tu servicio Angular, realiza una llamada HTTP GET a la URL de Spring Cloud Gateway.

    3. En la llamada HTTP GET, especifica el nombre del servicio backend como una cabecera. El nombre de la cabecera debe ser “X-Forwarded-Service-Id” y el valor debe ser el nombre de tu servicio backend registrado en Eureka.

    Por ejemplo:

    import { Injectable } from '@angular/core';
    import { HttpClient, HttpHeaders } from '@angular/common/http';
    
    @Injectable({
      providedIn: 'root'
    })
    export class MyDataService {
    
      constructor(private http: HttpClient) { }
    
      getData() {
        const httpOptions = {
          headers: new HttpHeaders({
            'X-Forwarded-Service-Id': 'nombre-de-mi-servicio-backend'
          })
        };
        return this.http.get('http://url-de-mi-gateway/ruta-al-servicio-rest', httpOptions);
      }
    }
    

    Reemplaza “nombre-de-mi-servicio-backend” con el nombre de tu servicio backend registrado en Eureka. Reemplaza “http://url-de-mi-gateway/ruta-al-servicio-rest” con la URL real de tu servicio REST detrás del gateway.

    Con estos cambios, tu aplicación Angular debería poder llamar a Spring Cloud Gateway y obtener datos del servicio backend.

Comments are closed.