zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    超300程序员受益入职的面试经验
    【修真院“正直”系列之三】【修真神界】【修行卷】【第一章】修真院入场券
    Js的同步异步以及回调函数
    Bootstrap栅格布局使用
    为什么程序员的工资比其他行业高这么多?
    Java培训机构可靠吗?
    get 与 post的区别?application json 与form表单的区别?
    谈谈以前端角度出发做好SEO需要考虑什么?
    【修真院“纯洁”系列之十九】驱逐令
    Redis缓存穿透和缓存雪崩以及解决方案
  • 原文地址:https://www.cnblogs.com/xiaofengshan/p/13734891.html
Copyright © 2011-2022 走看看