我们有一个带有Springfox-swagger2和springfox-swagger-ui(版本2.9.2)的SpringBoot(版本1.5.12)REST Api
@EnableSwagger2
public class Application extends SpringBootServletInitializer {
@Bean
public Docket swagger() {
return new Docket(SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
我可以在http://localhost:8080/swagger-ui.html看到Swagger UI
如何配置swagger-ui以读取swagger.yaml / json配置文件,而不是自动生成它? 我尝试了几种配置,但均未成功。
答案 0 :(得分:3)
您需要创建一个可以提供SwaggerResourcesProvider
@Primary
bean的类,该类指定配置的位置,如下所示(考虑到swagger.json
文件存在于{{1}中) })
src/main/resources
然后在Swagger UI上,您可以从json(此处命名为@Configuration
public class SwaggerSpecConfig {
@Primary
@Bean
public SwaggerResourcesProvider swaggerResourcesProvider(InMemorySwaggerResourcesProvider defaultResourcesProvider) {
return () -> {
SwaggerResource wsResource = new SwaggerResource();
wsResource.setName("new spec");
wsResource.setSwaggerVersion("2.0");
wsResource.setLocation("/swagger.json");
List<SwaggerResource> resources = new ArrayList<>(defaultResourcesProvider.get());
resources.add(wsResource);
return resources;
};
}
}
)中选择规范,如下所示: