1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; import org.springframework.web.context.request.async.DeferredResult; import springfox.documentation.builders.*; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList; import java.util.List;
@Configuration @EnableOpenApi @EnableKnife4j public class SwaggerConfig {
@Value("${spring.application.name}") private String name;
@Bean public Docket systemApi() {
return new Docket(DocumentationType.OAS_30) .groupName(name) .genericModelSubstitutes(DeferredResult.class).useDefaultResponseMessages(false).forCodeGeneration(true) .select() .apis(RequestHandlerSelectors.basePackage("com.simplemw")) .paths(PathSelectors.any()).build() .pathMapping("/") .globalRequestParameters(getGlobalRequestParameters()) .globalResponses(HttpMethod.GET, getGlobalResponseMessage()) .globalResponses(HttpMethod.POST, getGlobalResponseMessage()) .apiInfo(systemApiInfo()); }
private ApiInfo systemApiInfo() { return new ApiInfoBuilder() .title("swagger3 title") .description("测试swagger整合knife4j生成离线接口文档") .termsOfServiceUrl("https://www.baidu.com/") .contact(new Contact("name", "", "123456@qq.com")) .version("1.0") .build(); }
private List<RequestParameter> getGlobalRequestParameters() { List<RequestParameter> parameters = new ArrayList<>(); parameters.add(new RequestParameterBuilder() .name("Authorization") .description("token") .required(false) .in(ParameterType.HEADER) .build()); parameters.add(new RequestParameterBuilder() .name("lang") .description("多语言切换") .required(false) .in(ParameterType.HEADER) .build()); return parameters; }
private List<Response> getGlobalResponseMessage() { List<Response> responseList = new ArrayList<>(); responseList.add(new ResponseBuilder().code("404").description("找不到资源").build()); return responseList; } }
|