最近弄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

swwager的使用的更多相关文章

  1. gradle多模块构建集成swagger

    1.首先说一下软件的版本:springboot:1.5.2:springcloud:D-SR1:swaager2:2.6.0:gradle:4.5.工程模块是分开的单独的entity,api,mapp ...

随机推荐

  1. Capstone CS5268 Type-C转HDMI+VGA带PD快充+USB3.1扩展坞方案

    CS5268是一种高度集成的单芯片,适用于多个细分市场和显示应用,如拓展坞.扩展底座等. 2.CS5268参数说明 总则 USB Type-C规范1.2 HDMI规范v2.0b兼容发射机,数据速率高达 ...

  2. MySQL数据库安装Version5.7.25

    1.说明 MySQL数据库大版本5.7的安装没有较大变化, 所以MySQL数据库Version5.7.25安装请参考:MySQL数据库安装Version5.7 上面文章中MySQL安装使用Versio ...

  3. [数据结构]FHQ-Treap

    前言(个人评价FHQ-Treap) 这是一个巨佬(名叫范浩强)在冬令营交流的时候提出的数据结构(FHQ:\(\text{你干嘛非要旋转呢?Think Functional!}\))(可以看出FHQ大佬 ...

  4. 图解MySQL:count(*) 、count(1) 、count(主键字段)、count(字段)哪个性能最好?

    大家好,我是小林. 当我们对一张数据表中的记录进行统计的时候,习惯都会使用 count 函数来统计,但是 count 函数传入的参数有很多种,比如 count(1).count(*).count(字段 ...

  5. CSS 基础 选择器的使用汇总

    1.后代选择器 html 结构 <div class='father'> <p>小哥哥 小姐姐</p> <div> <p>小帅锅</p ...

  6. selenium等待方式详解

    这些方式仅供参考,实际使用体验并不好,最好对find_element()方法进行二次封装. # coding=utf-8 from time import sleep from selenium im ...

  7. Python2 和 Python3 共存于 Centos7

    一.解决Python2 pip问题 centos7自带的是Python2,但是并没有安装pip,我们需要自行安装 包名为 python-pip # yum install epel-release - ...

  8. a href 鼠标滑过变成小手图标

    <a id="l05" style="cursor:pointer;text-decoration:none;" href="<%=pat ...

  9. PPT制作手机手指滑动效果

    原文链接:https://www.toutiao.com/i6495304998786695694/ 上一节我们完成了手机滑动粗糙效果,这部分我们将给动画添加一个手指的图片. 首先,选择"插 ...

  10. SSR远程密码修改

    第一:输入passwd 第二:填入旧密码 ,随后会有新密码设置 第三:回车两次就行了.