最近弄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
- gradle多模块构建集成swagger
1.首先说一下软件的版本:springboot:1.5.2:springcloud:D-SR1:swaager2:2.6.0:gradle:4.5.工程模块是分开的单独的entity,api,mapp ...
随机推荐
- SpringCloud使用汇总Config
1.Config Server对外提供的资源格式 配置中心的HTTP服务有5种资源格式: /{application}/{profile}[/{label}] /{application}-{prof ...
- django 修改模型中默认字段类型
在ADMIN页面实现一个密码框,模型中是CharField默认类型是textinput,实现方法是在admin.py中重写widgets. 来自为知笔记(Wiz)
- alias 中使用 awk
alias hehistory10='history |awk "{print \$2}"|sort|uniq -c|sort -rn|head -10' alias lv='ls ...
- [转]webpack配置本地服务器
亲测,webpack打包vue项目之后生成的dist文件可以部署到 express 服务器上运行. 我的vue项目结构如下: 1. 进入该vue项目目录,打开git bash,执行:npm run b ...
- SYCOJ157乘二加一
题目-乘二加一 (shiyancang.cn) 递归写法 #include <bits/stdc++.h> using namespace std; string f(int n) { i ...
- Flowable实战(二)集成Springboot
1.创建Springboot项目 打开IDEA,通过File -> New -> Project- -> Spring Initializr 创建一个新的Springboot项目 ...
- leetcode 24. 两两交换链表中的节点 及 25. K 个一组翻转链表
24. 两两交换链表中的节点 问题描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2-> ...
- rocketmq实现延迟队列精确到秒级实现方案3-时间轮和秒级文件实现
时间轮和秒级文件实现原理图 这种方案比较简单实现,通过秒级时间,建立对应的文件夹,只要相同的时间超时的消息,就在同一个目录,通过msgid保证文件不重复,等到了时间后,就扫描对应的文件夹的文件,发送到 ...
- 【vps】如何在vps上安装mirai机器人?
[vps]如何在vps上安装mirai机器人? 前言 由于某位师傅在群里设置了一个bot,吸引了我,所以我之前找他问了点bot的相关知识,这几天正好服务器搬迁,所以就在新服务器上再装一遍bot 1.安 ...
- Servlet-通过继承HttpServlet类实现Servlet程序
通过继承HttpServlet类实现Servlet程序(开发一般用) 一般在实际项目开发中,都是使用继承 HttpServlet类的方式实现Servlet程序 1,编写一个类去继承 HttpServl ...