80 lines
2.8 KiB
Java
80 lines
2.8 KiB
Java
package com.baeldung.swagger2boot.configuration;
|
|
|
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.ComponentScan;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Import;
|
|
|
|
import com.baeldung.swagger2boot.plugin.EmailAnnotationPlugin;
|
|
|
|
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
|
|
import springfox.documentation.builders.PathSelectors;
|
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
|
import springfox.documentation.service.ApiInfo;
|
|
import springfox.documentation.service.Contact;
|
|
import springfox.documentation.spi.DocumentationType;
|
|
import springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration;
|
|
import springfox.documentation.spring.web.plugins.Docket;
|
|
import springfox.documentation.swagger.web.*;
|
|
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
|
|
|
|
import java.util.Collections;
|
|
|
|
@Configuration
|
|
@EnableSwagger2WebMvc
|
|
@Import({SpringDataRestConfiguration.class, BeanValidatorPluginsConfiguration.class})
|
|
public class SpringFoxConfig {
|
|
|
|
private ApiInfo apiInfo() {
|
|
return new ApiInfo(
|
|
"My REST API",
|
|
"Some custom description of API.",
|
|
"API TOS",
|
|
"Terms of service",
|
|
new Contact("John Doe", "www.example.com", "myeaddress@company.com"),
|
|
"License of API",
|
|
"API license URL",
|
|
Collections.emptyList());
|
|
}
|
|
|
|
@Bean
|
|
public Docket api() {
|
|
return new Docket(DocumentationType.SWAGGER_2)
|
|
.apiInfo(apiInfo())
|
|
.select()
|
|
.apis(RequestHandlerSelectors.any())
|
|
.paths(PathSelectors.any())
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
* SwaggerUI information
|
|
*/
|
|
|
|
@Bean
|
|
UiConfiguration uiConfig() {
|
|
return UiConfigurationBuilder.builder()
|
|
.deepLinking(true)
|
|
.displayOperationId(false)
|
|
.defaultModelsExpandDepth(1)
|
|
.defaultModelExpandDepth(1)
|
|
.defaultModelRendering(ModelRendering.EXAMPLE)
|
|
.displayRequestDuration(false)
|
|
.docExpansion(DocExpansion.NONE)
|
|
.filter(false)
|
|
.maxDisplayedTags(null)
|
|
.operationsSorter(OperationsSorter.ALPHA)
|
|
.showExtensions(false)
|
|
.tagsSorter(TagsSorter.ALPHA)
|
|
.supportedSubmitMethods(UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS)
|
|
.validatorUrl(null)
|
|
.build();
|
|
}
|
|
|
|
@Bean
|
|
public EmailAnnotationPlugin emailPlugin() {
|
|
return new EmailAnnotationPlugin();
|
|
}
|
|
}
|