wagger的展示路径修改
转:https://www.jianshu.com/p/ce7e247515f5?utm_source=oschina-app
注:本文是基于springboot配置实现,但在实际中使用springmvc和本文的配置基本一致,不影响使用。
下面是第一种配置方式。尽量精简的配置。
一
1 在pom文件中引入依赖
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
2 新建swag配置文件
在代码中新定义一个类,代码如下
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("对外开放接口API 文档")
.description("HTTP对外开放接口")
.version("1.0.0")
.termsOfServiceUrl("http://xxx.xxx.com")
.license("LICENSE")
.licenseUrl("http://xxx.xxx.com")
.build();
}
}
3 在自己的controller中使用
@Slf4j
@RestController
public class MyController {
@RequestMapping(value = "hello", method = RequestMethod.GET)
public String hello() {
return "hello";
}
}
如上的配置就可以了,下面是展示效果
在本地启动项目,然后浏览器输入:
http://localhost:8080/swagger-ui.html
效果如下:swagger.png
这种配置方式非常简单,对原有的代码也基本没有任何侵入性。基本可以满足接口描述的需求。
但是,有很多项目都是前后端分离的,在nginx中会配置把 "/rest/" 开头的链接打到后端来,而把其他请求打到前端去。当然,你可以修改nginx的配置,把某些链接打到前端去,剩下的直接打到后端。不过这种方式会有一定的安全性问题,可控性也不太好。最好能给修改swagger的展示地址,
比如从
http://localhost:8080/swagger-ui.html
修改为
http://localhost:8080/rest/api/doc/swagger-ui.html
下面就是第二种配置方式,可以自定义展示链接。
二
1 在pom文件中引入依赖(注意我们去掉了对springfox-swagger-ui的依赖)
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
2 git clone swagger-ui项目
https://github.com/swagger-api/swagger-ui
请选择2.0以上,3.0以下版本
将其中的dist文件夹拷贝到自己项目中的resources/swagger目录下,如图

3 在resources下新建swagger.properties文件,其中的内容为
springfox.documentation.swagger.v2.path=/rest/api/doc
4 修改resources/swagger/dist 下的index文件
将其中的
<script type="text/javascript">
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "http://petstore.swagger.io/v2/swagger.json";
}
url = "http://petstore.swagger.io/v2/swagger.json"
修改为
url = "/rest/api/doc"
修改后如下
<script type="text/javascript">
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "/rest/api/doc";
}
5 新建swag配置文件
在代码中新定义一个类,代码如下
@Configuration
@EnableSwagger2
@PropertySource("classpath:swagger.properties") // 新增对swagger.properties 的引入
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("对外开放接口API 文档")
.description("HTTP对外开放接口")
.version("1.0.0")
.termsOfServiceUrl("http://xxx.xxx.com")
.license("LICENSE")
.licenseUrl("http://xxx.xxx.com")
.build();
}
}
6 增加url映射
如果是springboot,在Application中增加
@SpringBootApplication
public class DemoApplication extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/rest/api/doc/**").addResourceLocations("classpath:/swagger/dist/");
}
.....
}
如果是springmvc,则在api-servlet.xml(application.xml)中增加
<mvc:resources mapping="/rest/api/doc/**" location="classpath:/swagger/dist/"/>
终于配置完成,启动项目,在浏览器中输入:
http://localhost:8080/rest/api/doc/index.html
swagger.png
springfox官网
api注解相关描述可参考
http://blog.csdn.net/xupeng874395012/article/details/68946676
wagger的展示路径修改的更多相关文章
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
- maven之respository(仓库)本地路径修改
maven默认的仓库路径会在c盘(我的C:\Users\Administrator\.m2\repository),这样如果系统出问题或其他原因会造成仓库损坏,因此会自己配置仓库路径. 1.首先找到你 ...
- xp默认安装路径及本地用户配置文件存放路径修改
xp默认安装路径及本地用户配置文件存放路径修改 修改注册表可能会造成您的系统崩溃或数据丢失,请先行备份操作系统,以备不测!!! 备份注册表步骤: 1.在“桌面”上按快捷键“Ctrl+R”,调出“运行” ...
- AMH4.2 Ftp账号路径修改设置
AMH4.2的ftp控制有点不尽如人意,每个ftp账号只能对应一个站点:如果按照面板所提供的权限,有多少个站就得设置多少个ftp账号,这一操作就会非常麻烦,造成效率低下:不过AMH5.0已经能够通过面 ...
- [Eclispe] NDK内建include路径修改
[Eclispe] NDK内建include路径修改 编辑 jni/android.mk 中 LOCAL_C_INCLUDES 变量后,该变量值将被列入项目属性的内建include头文件包含路径,无法 ...
- Oculus Store游戏下载默认路径修改方法
最近在测试一款VR游戏,所以在硬件设备上选择了HTC Vive和Oculus两款眼镜.相对而言,HTC安装比较人性化:支持自定义安装路径,而且可在界面更改应用程序下载位置,如图所示: 这下替我节省了不 ...
- ubuntu16.04 Docker默认存储路径修改
Ubuntu 16.04 Docker默认存储路径修改
- Android Studio配置文件路径修改
用Android Studio进行Android开发已经成为趋势了,好的工具要用得称手也少不了好的调教,在Windows下更是如此.这里对Android Studio的相关配置文件的路径修改做下小结. ...
- Sublime Text 3 配置文件路径修改
Sublime Text 3安装完以后(安装过程不再演示),第一次打开会在C:\Users\admin\AppData\Roaming目录下创建一个Sublime Text 3目录用于存放Sublim ...
随机推荐
- Microsoft Visual Studio 2013安装及试用
我是在网上下载的vs2013版的安装包,下载的是压缩文件,解压后是2.86GB.安装包下载完成后我们就可以进入安装了. 同时建议最好在互联网连接的情况下安装. 打开下载好的文件,我们要选择.exe可执 ...
- M2团队贡献分分配
经过考虑,M2阶段团队贡献分分配如下: 团队成员 贡献分 12061166 宋天舒 56 12061157 黄漠源 52 12061159 张迎春 55 12061175 刘翔宇 54 1206117 ...
- 《Linux内核分析》第七周学习总结 可执行程序的装载
第七周.可执行程序的装载 一.可执行程序是如何产生的? (1).c文件gcc汇编形成.s和.asm汇编代码: (2)汇编代码经过gas变成.o目标文件: (3)目标文件变成可执行文件: (4)可执行文 ...
- synchronized关键字的学习与总结
- PAT 1009 说反话
https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960 给定一句英语,要求你编写程序,将句中所有单词 ...
- [转帖]git命令参考手册
git init # 初始化本地git仓库(创建新仓库) git ...
- PRML读书笔记_绪论曲线拟合部分
一.最小化误差函数拟合 正则化( regularization )技术涉及到给误差函数增加一个惩罚项,使得系数不会达到很大的值.这种惩罚项最简单的形式采用所有系数的平方和的形式.这推导出了误差函数的修 ...
- Jquery 组 表单select交互选项
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ...
- PostgreSQL字段类型说明
BIGSERIALSERIAL8 存储自动递增的惟一整数,最多 8 字节. BIT 固定长度的位串. BIT VARYING(n)VARBIT(n) 可变长度的位串,长度为 n 位. BOOLEAN ...
- zabbix2.2 - FromDual.MySQL.check" became not supported
升级zabbix后发现zabbix server日志中多个实例报错如下: 27974:20171227:113001.724 item "实例name:FromDual.MySQL.chec ...

