#java #kotlin #swagger #openapi
Вопрос:
У меня есть 3 API, например /api
/internal
(для внутренних служб) и /admin
(для администрирования), каждый из них в отдельном пакете:
controller | --api | --internal | --admin
Чем, мне нужно реализовать отдельный пользовательский интерфейс Swagger для каждого пакета с отдельным путем, например:
http://localhost:8080/api/swagger-ui.html http://localhost:8080/admin/swagger-ui.html http://localhost:8080/internal/swagger-ui.html
только с контроллерами, расположенными по определенному пути. На данный момент у меня есть простая фасоль, вот так:
@Bean fun openApi(): OpenAPI = OpenAPI().info(Info().title("Test title"))
Ответ №1:
Решение:
@Bean fun openApi(): OpenAPI = OpenAPI().info(Info().title("Test title")) @Bean fun adminApi(): GroupedOpenApi = GroupedOpenApi .builder() .group("admin") .pathsToMatch("/admin/**") .build() @Bean fun internalApi(): GroupedOpenApi = GroupedOpenApi .builder() .group("internal") .pathsToMatch("/internal/**") .build() @Bean fun apiApi(): GroupedOpenApi = GroupedOpenApi .builder() .group("api") .pathsToMatch("/api/**") .build()
чем, вы можете выбрать группу таким образом:
и будут отображаться только конечные точки из пути группы.