Я использую пружинный ботинок с чванством. Я уже настроил swagger, но теперь я хочу настроить пользовательский файл json, и swagger загружает этот файл, но я не знаю, как это сделать. Я опубликую свой webconfig.java. Я использую весеннюю загрузку 1.3.3 и swagger 2.6.1. Сначала я попытался добавить ресурс в swagger и сослаться на файл json в этом ресурсе, но это не сработало. Кто-нибудь может помочь?
WebConfig.java:
@Configuration
@EnableTransactionManagement
@EnableSwagger2
@EnableJpaRepositories(basePackages = "com.restfulproject.crud.repositories")
@ComponentScan(basePackages = "com.restfulproject.crud.*")
public class WebConfig extends WebMvcConfigurationSupport{
@Bean
public Docket userApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(metaData());
}
@Primary
@Bean
public SwaggerResourcesProvider swaggerResourcesProvider(InMemorySwaggerResourcesProvider defaultResourcesProvider) {
return () -> {
SwaggerResource wsResource = new SwaggerResource();
wsResource.setName("swagger");
wsResource.setSwaggerVersion("2.0");
wsResource.setLocation("/api/config/swagger.json");
List<SwaggerResource> resources = new ArrayList<>(defaultResourcesProvider.get());
resources.add(wsResource);
return resources;
};
}
@Bean
WebMvcConfigurer configurer () {
return new WebMvcConfigurerAdapter() {
@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/api/config/swagger.json").
addResourceLocations("classpath:/config/swagger.json");
}
};
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/api/v2/api-docs", "/v2/api-docs");
registry.addRedirectViewController("/api/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui");
registry.addRedirectViewController("/api/swagger-resources/configuration/security", "/swagger-resources/configuration/security");
registry.addRedirectViewController("/api/swagger-resources", "/swagger-resources");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/api/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
registry.addResourceHandler("/api/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
private ApiInfo metaData() {
return new ApiInfoBuilder()
.title("User Crud REST API")
.description("\"Projeto que utiliza spring boot\"")
.version("1.0.0")
.license("Apache License Version 2.0")
.licenseUrl("https://www.apache.org/licenses/LICENSE-2.0\"")
.build();
}
}