• swwager的使用


    最近弄swwager文档,被搞得恼火,故记录一下

    先展示一下现有的页面,此页面由swwager自动生成

     配置步骤:

    一:导入swwager的依赖

    <!-- ===================Swagger2 Begin=================== -->
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
    <exclusions>
    <exclusion>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-annotations</artifactId>
    </exclusion>
    <exclusion>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-models</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    <dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.4</version>
    </dependency>
    <dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-annotations</artifactId>
    <version>1.5.21</version>
    </dependency>
    <dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-models</artifactId>
    <version>1.5.21</version>
    </dependency>
    <!-- ===================Swagger2 End=================== -->

    第二步:编写配置文件

    package com.yxkj.web.webpaypre.config;

    import com.google.common.base.Function;
    import com.google.common.base.Optional;
    import com.google.common.base.Predicate;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.RequestHandler;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    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;

    /**
    * Swagger2 UI配置
    * <pre>
    * 通过访问http://{yourip}:8090/api/swagger-ui.html查看发布的REST接口;
    * </pre>
    */
    @Configuration
    @EnableSwagger2
    //@Profile({"dev", "test"})
    public class SwaggerConfig {
    // 定义分隔符
    private static final String SEPARATOR = ",";

    /**
    * 设置全局参数
    * @return
    */
    private List<Parameter> getGlobalOperationParameters() {
    List<Parameter> pars = new ArrayList<>();
    // ParameterBuilder parameterBuilder = new ParameterBuilder();
    // parameterBuilder.name("token").description("token").modelRef(new ModelRef("string")).parameterType("header").required(true);
    // pars.add(parameterBuilder.build());
    // parameterBuilder.name("sign").description("数据签名").modelRef(new ModelRef("string")).parameterType("header").required(true);
    // pars.add(parameterBuilder.build());
    return pars;
    }

    /**
    * Swagger2创建Docket的Bean
    * @return Docket
    */
    @Bean
    public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
    .globalOperationParameters(getGlobalOperationParameters())
    .apiInfo(apiInfo())
    .select()
    .apis(basePackage("com.yxkj.web.webpaypre.controller" ))
    .paths(PathSelectors.any())
    .build();
    }



    /**
    * Swagger2创建该Api的基本信息
    *
    * @return ApiInfo
    */
    @Bean
    public ApiInfo apiInfo() {
    return new ApiInfoBuilder().title("西藏医典科技健康管理有限公司")
    .termsOfServiceUrl("https://springfox.github.io/springfox/docs/current/").version("1.0").build();
    }


    /**
    * @param basePackage
    * @return
    * @see RequestHandlerSelectors#basePackage(String)
    */
    public static Predicate<RequestHandler> basePackage(final String basePackage) {
    return input -> {
    return declaringClass(input).transform(handlerPackage(basePackage)).or(true);
    };
    }

    private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {
    return input -> {
    // 循环判断匹配
    for (String strPackage : basePackage.split(SEPARATOR)) {
    boolean isMatch = input.getPackage().getName().startsWith(strPackage);
    if (isMatch) {
    return true;
    }
    }
    return false;
    };
    }

    private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
    return Optional.fromNullable(input.declaringClass());
    }

    }

    第三步:在浏览器中输入访问地址:http://IP:8082/项目的访问路径/doc.html

  • 相关阅读:
    git 强制覆盖本地
    给mysql添加账户并且赋予权限
    laravel 地址栏传参不了问题
    订单系统开发02
    熵——信息增益
    熵——导读
    熵——自信息
    tensorflow在文本处理中的使用——skip-gram & CBOW原理总结
    霍夫曼树
    tensorflow在文本处理中的使用——Word2Vec预测
  • 原文地址:https://www.cnblogs.com/xiaofengshan/p/13734891.html
Copyright © 2020-2023  润新知