swagger開關,swagger介面文件開關
阿新 • • 發佈:2022-06-01
package com.peony.electric.server.config; import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI; import com.peony.common.entity.po.TaskPO; import com.peony.common.enums.TaskStatus; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; import java.util.List;/** * @author 杜雲山 * @date 2019/10/26 */ @Configuration @EnableSwagger2 @EnableSwaggerBootstrapUI public class Swagger2Config { @Bean public Docket createRestApi() { boolean show=false;//開關配置,可以配置到配置檔案 //只有本地啟動才有介面文件 String os = System.getProperties().getProperty("os.name");if(os.contains("Windows")){show=true;} return new Docket(DocumentationType.SWAGGER_2).enable(show) .directModelSubstitute(TaskPO.class, String.class) .directModelSubstitute(TaskStatus.class, String.class) .apiInfo(apiInfo()) .host("localhost") .globalOperationParameters(parameters()) .select() //Swagger UI預設顯示所有介面 .apis(RequestHandlerSelectors.basePackage("com.peony.electric.server")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 設定頁面標題 .title("api介面文件") // 設定聯絡人 .contact(new Contact("暫無name", "暫無url", "暫無email")) // 描述 .description("歡迎訪問介面文件,這裡是描述資訊") // 定義版本號 .version("1.0") .build(); } /** * 全域性引數 * * @return List<Parameter> */ private List<Parameter> parameters() { List<Parameter> params = new ArrayList<>(); params.add(new ParameterBuilder() .name("token") .description("認證令牌,登入外其他介面必填") .modelRef(new ModelRef("string")) .parameterType("header") .required(false) .build()); params.add(new ParameterBuilder() .name("imei") .description("APP端需傳入裝置的imei") .modelRef(new ModelRef("string")) .parameterType("header") .required(false) .build()); return params; } }