1. 程式人生 > 其它 >swagger開關,swagger介面文件開關

swagger開關,swagger介面文件開關

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; } }