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.

¿Cómo integrar las especificaciones de OpenAPI de diferentes APIs?

Quería preguntar si hay alguna manera de agregar de manera sencilla las especificaciones de OpenApi de diferentes APIs.

Actualmente utilizamos Swagger para cada una de nuestras APIs y allí agregamos lógica personalizada para la autenticación, también añadimos reglas para diferentes accesibilidades.

Sin embargo, sería mucho más conveniente poder de alguna forma agregar todas esas APIs y mantener la autenticación y la lógica de acceso en el mismo lugar.

Ejemplo:

Tenemos dos microservicios separados con APIs y direcciones separadas.

API 1 localhost:5000
– Proyecto separado con la API de Pedidos
– Swagger separado accesible bajo esta URL

API 2 localhost:5001
– Proyecto separado con la API de Notificaciones
– Swagger separado accesible bajo esta URL

El resultado final que deseamos es algún tipo de marco de agregación o proyecto de muestra que pueda obtener la especificación de Open API generada por Swagger de esos proyectos y mostrarlo como uno solo bajo una nueva URL en

localhost:5002

  • Obtenemos Swagger agregado o algún otro marco que muestre los puntos finales de las APIs de Pedidos y Notificaciones

Básicamente, supongo que este problema sería común entre las personas que utilizan microservicios y que necesitan ofrecer a los clientes algún tipo de especificación de una API pública de varios microservicios. En la mayoría de los casos, el cliente quisiera verlo como uno solo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de agregar especificaciones de OpenApi de diferentes APIs. Una forma de lograr esto es utilizando Swagger UI con un archivo de configuración personalizado.

    Para hacerlo, puedes crear un nuevo proyecto con un único Swagger UI que importe las definiciones de las dos especificaciones Swagger separadas. Para mantener la lógica de autenticación y acceso en un solo lugar, puedes utilizar un servidor de reverse-proxy como Nginx o Apache para fusionar las dos especificaciones Swagger.

    Aquí tienes los pasos generales para lograr esto:

    1. Crea un nuevo proyecto con un único Swagger UI que importe las definiciones de las dos especificaciones Swagger separadas.
    2. Utiliza un servidor de reverse-proxy como Nginx o Apache para fusionar las dos especificaciones Swagger.
    3. Configura el Swagger UI para utilizar la especificación Swagger combinada generada por el servidor de reverse-proxy.
    4. Agrega cualquier lógica personalizada de autenticación y acceso al servidor de reverse-proxy.

    Siguiendo estos pasos, puedes crear una única especificación Swagger que agregue las API separadas, al mismo tiempo que mantiene la autenticación y la lógica de acceso en un solo lugar.

Comments are closed.