一个spring应用程序中的多个swagger-ui html页面



我正在构建一个应用程序,我想有两个swagger url:

http://localhost: 8080/order-swagger.ui.html

http://localhost: 8080/inventory-swagger.ui.html

我读了很多文章,但没有找到任何解决办法。我发现,虽然定义了两个docket bean,但它并不能有效地构建两个html页面。它在右上角的下拉菜单中创建了2个项目。

如果你能告诉我怎么做,我将不胜感激。

与两个Docketbean一起,您可以添加一对URL重定向规则,将/order-swagger.ui.html/inventory-swagger.ui.html路由到/swagger-ui.html,并选择正确的组。我定义了一个WebMvcConfigurerbean来进行重定向,然后我得到了两个独立的url,http://localhost:8080/order-swagger.ui.htmlhttp://localhost:8080/inventory-swagger.ui.html,分别显示了/order/inventory端点的API定义。下面的Bean定义:

@Bean
public Docket orderDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("order")
.select().paths(path -> path.endsWith("/order"))
.build();
}
@Bean
public Docket inventoryDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("inventory")
.select().paths(path -> path.endsWith("/inventory"))
.build();
}
@Bean
public WebMvcConfigurer webMvcConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("order-swagger.ui.html", "/swagger-ui.html?urls.primaryName=order");
registry.addRedirectViewController("inventory-swagger.ui.html", "/swagger-ui.html?urls.primaryName=inventory");
}
};
}

相关内容

  • 没有找到相关文章

最新更新