我正在构建一个应用程序,我想有两个swagger url:
http://localhost: 8080/order-swagger.ui.html
http://localhost: 8080/inventory-swagger.ui.html
我读了很多文章,但没有找到任何解决办法。我发现,虽然定义了两个docket bean,但它并不能有效地构建两个html页面。它在右上角的下拉菜单中创建了2个项目。
如果你能告诉我怎么做,我将不胜感激。
与两个Docket
bean一起,您可以添加一对URL重定向规则,将/order-swagger.ui.html
和/inventory-swagger.ui.html
路由到/swagger-ui.html
,并选择正确的组。我定义了一个WebMvcConfigurer
bean来进行重定向,然后我得到了两个独立的url,http://localhost:8080/order-swagger.ui.html
和http://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");
}
};
}