import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMethod;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.ResponseMessageBuilder;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger.web.*;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
@EnableSwagger2
@Configuration
class SwaggerConfig {
@Bean
Docket coreApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.dld.hll.omega.controller"))
.paths(PathSelectors.any())
.build()
.pathMapping("/")
// 以字符串代替日期格式显示
.directModelSubstitute(LocalDate.class, String.class)
.directModelSubstitute(LocalDateTime.class, String.class)
.genericModelSubstitutes(ResponseEntity.class)
// 页面显示信息
.apiInfo(new ApiInfoBuilder()
.title("OMEGA RESTFUL API")
.description("定时任务接口文档")
.version("1.0.0")
.build())
// 设置全局自定义异常消息返回
.useDefaultResponseMessages(false)
.globalResponseMessage(RequestMethod.GET, Arrays.asList(
new ResponseMessageBuilder()
.code(400)
.message("请求参数异常")
.responseModel(new ModelRef("Error"))
.build(),
new ResponseMessageBuilder()
.code(404)
.message("请求资源不存在")
.responseModel(new ModelRef("Error"))
.build(),
new ResponseMessageBuilder()
.code(500).message("系统内部异常")
.responseModel(new ModelRef("Error"))
.build())
);
}
@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();
}
}