Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

516
Vistas
Cómo leer el archivo de configuración para establecer la URL de la API dentro de una aplicación Angular empaquetada como WAR e implementada en IBM Liberty

ng build --prod y copié el contenido de la carpeta /dist dentro de la carpeta webapps de un proyecto web dinámico.

Luego trato de exportar este proyecto como un archivo .war y lo implemento en el servidor Liberty. El desafío es que configuré las URL de la API dentro de environment.prod.ts .

Entonces, en caso de que necesite cambiar la URL de la API, necesito volver a ejecutar ng build y copiar el contenido de /dist y luego exportar como .war .

Intenté configurar la URL base de la API en window.location.origin , ya que la URL base será la misma para nuestra aplicación Angular y Microservicios.

En cambio, lo que queremos es hacer que la URL de la API sea configurable desde el exterior. Por ejemplo, hemos creado el archivo .war final, pero cuando lo implementamos como un contenedor en la ventana acoplable, leemos un archivo de configuración y lo configuramos como URL de API.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Dado que está utilizando Liberty, puede crear un punto final utilizando JAX-RS (tutorial sobre JAX-RS aquí ) que lea las URL base que necesita de un archivo o variables de entorno (puede utilizar las API de Java estándar o algo como MicroProfile Config ) y devolverlos como respuesta. Empaqueta esto como parte de tu archivo .war .

Luego, en el inicio , su aplicación Angular puede realizar una solicitud a este punto final (del cual siempre sabrá la ubicación, ya que será la misma ventana. ubicación de la que proviene la aplicación Angular, solo una raíz de contexto diferente y /o ruta.) Eso le dará la información que necesita para funcionar.

over 4 years ago · Santiago Trujillo Denunciar

0

1) Puede tener archivos json para la configuración y agregarlos en la carpeta de activos y consultar estos archivos para apis desde el código, por lo que no necesitará reconstruirlos, simplemente reemplace el archivo de contenido en los activos y funcionará de inmediato. .

2) También puede usar importaciones dinámicas, pero en ese caso necesitará tener un paquete de compilación personalizado para abordar su archivo.

over 4 years ago · Santiago Trujillo Denunciar

0

1ra solución:

Puede incluir la compilación ng, la creación de archivos war y la implementación en el mismo Dockerfile y, por lo tanto, configurar directamente API_URL antes del paso de compilación ng. Pero eso haría que reconstruyera un contenedor cada vez que cambie API_URL (que, según tengo entendido, es lo que está haciendo cada vez que vuelve a implementar su guerra).

2da solución:

Así que voy a hacer algunas suposiciones para esta primera solución.

Por lo que ha dicho, asumo que está trabajando en una arquitectura de microservicios. También supondré que todos sus microservicios están expuestos a través de un único punto final que es una API Gateway.

Una posible solución sería tener un punto final fijo expuesto a través de su API Gateway que la aplicación Angular usará para obtener API_URL (por ejemplo: /api/url). Esto resolvería todos sus problemas, ya que puede hacer que ese punto final (/api/url) devuelva lo que quiera.

Puede hacer que devuelva una URL que obtiene de algún almacén de configuración/microservicio que puede modificar fácilmente en cualquier momento.

La única desventaja que puedo ver es que dependerás de esa URL para que tu aplicación funcione. Lo que lo convierte en un único punto de falla. Aunque puede omitir esto utilizando alguna API alternativa en caso de que el punto final /api/url no funcione.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda