Обслуживать одну страницу из нескольких конечных точек спецификации OpenAPI?

Мы запускаем набор микросервисов, и каждый из них предоставляет спецификацию open-api для URL-адреса, как показано ниже.

https://{domain}/v1/membership/v3/api-docs
https://{domain}/v1/storage/v3/api-docs
https://{domain}/v1/order/v3/api-docs

URL-адрес открывает open-api json (не пользовательский интерфейс).

Кто-нибудь знает инструмент, в котором я могу объединить их и иметь возможность обслуживать все API через URL-адрес, например https://{domain}/v1/apis с пользовательским интерфейсом?

Я посмотрел Google, и все, что я увидел, требовало от меня создания одного файла json со всеми API вместо их динамического обслуживания.


person hinewwiner    schedule 25.11.2020    source источник
comment
Вместо объединения файлов OpenAPI у вас может быть одна страница пользовательского интерфейса Swagger для нескольких API. Эта конфигурация существует в автономном пользовательском интерфейсе Swagger, не уверен в конфигурациях springdoc-openapi-ui.   -  person Helen    schedule 25.11.2020


Ответы (1)


Вы можете использовать свойство urls:

springdoc.swagger-ui.urls[0].name = first
springdoc.swagger-ui.urls[0].url = /firstAPI.yaml

springdoc.swagger-ui.urls[1].name = second
springdoc.swagger-ui.urls[1].url = /secondAPI.yaml

Это свойство можно найти в документации. Существует также хорошее Часто задаваемые вопросы по этому вопросу:

Свойства springdoc.swagger-ui.urls.* подходят для настройки внешнего (/v3/api-docs URL). Например, если вы хотите объединить все конечные точки других служб внутри одного приложения. Не забывайте, что CORS также должен быть включен.

person Community    schedule 02.12.2020