最近弄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 ...
随机推荐
- MySQL 中的共享表空间与独立表空间
对于 InnoDB 存储引擎来说,它可以将每张表存放于独立的表空间,即tablename.ibd 文件:也可以将数据存放于 ibdata 的共享表空间,一般命名是 ibdataX,后面的 X 是一个具 ...
- 【LeetCode】剑指 Offer 04. 二维数组中的查找
二维数组查找:线性查找法 有二维数组: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, ...
- Unsupervised Domain Adaptation by Backpropagation
目录 概 主要内容 代码 Ganin Y. and Lempitsky V. Unsupervised Domain Adaptation by Backpropagation. ICML 2015. ...
- Java实习生常规技术面试题每日十题Java基础(六)
目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...
- Kerberos认证过程学习理解
概念: Kerberos服务器:AS认证服务器,TGS服务授权服务器 Client 客户端,代表使用应用的用户 AppServer 服务端,应用提供各种服务的服务器 Client在Kerberos注册 ...
- linux 之 mysql数据库备份与恢复
备份 mysqldump -uroot -p123 --databases test > ~/test.sql --databases 指定数据库 恢复 mysql -uroot -p123 & ...
- DRF框架在嵌套关系下实现嵌套对象字段的过滤
当需要对关联对象的字段进行选择性显示时,在所对应的serializer类中声明引用的字段. 例如: class TrackSerializer(serializers.ModelSerializer) ...
- Docker_使用Rancher管理docker(7)
一.简介 Rancher是一个开源的企业级全栈化容器部署及管理平台.Rancher为容器提供一揽子基础架构服务:CNI兼容的网络服务.存储服务.主机管理.负载均衡.防护墙--Rancher让上述服务跨 ...
- JMeter_响应数据为空以及中文乱码
一.响应数据为空 最近做测试接口,使用同样的请求方式.地址.参数和header,在postman中能正常响应,接收数据的也正常,但是在Jmeter中,虽然响应正常,但是响应数据却为空! Jmeter接 ...
- PyCharm撤消/恢复
PyCharm在撤消/重做的每个步骤之前移动插入符号,然后执行撤消/重做操作. 要撤消操作,请执行以下操作之一: 在主菜单上,选择Edit | Undo. 按Ctrl+Z. 要恢复操作,请执行以下操作 ...