Swagger OpenAPI:如何为每个包实现单独的 UI?
Swagger OpenAPI: How to implement separate UI for each package?
我有 3 个 API,例如/api
、/internal
(用于内部服务)和 /admin
(用于管理),每个都在单独的包中:
controller
|
--api
|
--internal
|
--admin
然后,我需要为每个具有单独路径的包实现单独的 Swagger UI,例如:
http://localhost:8080/api/swagger-ui.html
http://localhost:8080/admin/swagger-ui.html
http://localhost:8080/internal/swagger-ui.html
只有控制器,位于特定路径。
现在,我有简单的 bean,像这样:
@Bean
fun openApi(): OpenAPI = OpenAPI().info(Info().title("Test title"))
解决方案:
@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()
那么,你可以这样选组:
并且只应出现组路径中的端点。
我有 3 个 API,例如/api
、/internal
(用于内部服务)和 /admin
(用于管理),每个都在单独的包中:
controller
|
--api
|
--internal
|
--admin
然后,我需要为每个具有单独路径的包实现单独的 Swagger UI,例如:
http://localhost:8080/api/swagger-ui.html
http://localhost:8080/admin/swagger-ui.html
http://localhost:8080/internal/swagger-ui.html
只有控制器,位于特定路径。 现在,我有简单的 bean,像这样:
@Bean
fun openApi(): OpenAPI = OpenAPI().info(Info().title("Test title"))
解决方案:
@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()
那么,你可以这样选组:
并且只应出现组路径中的端点。