swagger2-接口文档
在使用spring boot进行开发接口时,很好用的就是swagger2接口文档,自动生成文档后还能进行测试。spring boot项目集成swagger2就比较容易,但是我在spring mvc的项目中集成swagger2的时候遇到了不少问题,现记录下,方便以后工作中使用。
0.Spring MVC配置文件中的配置
- <!-- 设置使用注解的类所在的jar包,只加载controller类 --> <span style="white-space:pre"> </span><context:component-scan base-package="com.jay.plat.config.controller" />
- <!-- 使用 Swagger Restful API文档时,添加此注解 --> <mvc:default-servlet-handler /> 、
- <mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
1.maven依赖
- <!-- 构建Restful API -->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- <version>2.4.0</version>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- <version>2.4.0</version>
- </dependency>
2.Swagger配置文件
/** Restful API 访问路径:* http://IP:port/{context-path}/swagger-ui.html* eg:http://localhost:8080/jd-config-web/swagger-ui.html*/ @EnableWebMvc @EnableSwagger2 @ComponentScan(basePackages = {"com.thinkgem.jeesite.modules.rmi.web"}) @Configuration public class RestApiConfig extends WebMvcConfigurationSupport {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.thinkgem.jeesite.modules.rmi.web")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("售电平台接入数据 APIs").termsOfServiceUrl("http://blog.csdn.net/he90227").contact("售电PC").version("1.1").build();} }
3.Controller中使用注解添加API文档
/**** Created by kwt on 2017/8/23.*/ @Controller @RequestMapping("${adminPath}/rmi/test/tools") @Api( value = "设备管理测试", description = "设备管理-测试") public class TestAmmeterToolsController {@Autowiredprivate AmmeterToolsUtil ammeterToolsUtil;/*** 用户登录* @return*/@ApiOperation(value="用户登录接口",notes="用户登录接口" ,httpMethod = "POST")@RequestMapping(value = "/login", method = RequestMethod.POST)@ResponseBodypublic Object login() {LoginReq loginReq = new LoginReq();loginReq.setUserName("");loginReq.setPassword("");loginReq.setTypeName("");LoginResp login = ammeterToolsUtil.login(loginReq);return login;}/*** 用户下网关查询* @return*/@ApiOperation(value="用户网关查询",notes="用户网关查询" ,httpMethod = "POST")@RequestMapping(value = "/queryGateWay", method = RequestMethod.POST)@ResponseBodypublic Object queryGateWay() {QueryGatewayResp queryGatewayResp = ammeterToolsUtil.queryGateway();return queryGatewayResp;}/*** 网关注册* @return*/@ApiOperation(value="网关注册",notes="网关注册" ,httpMethod = "POST")@RequestMapping(value = "/registGateway", method = RequestMethod.POST)@ResponseBodypublic Object registGateway() {RegistGatewayReq registGatewayReq = new RegistGatewayReq();registGatewayReq.setGatewayId((long)0);//网关idregistGatewayReq.setAddress("sjz");//网关安装地址registGatewayReq.setGatewayName("test001");registGatewayReq.setTime("2018-08-08");RegistGatewayResp regist = ammeterToolsUtil.registGateway(registGatewayReq);return regist;}/*** 网关修改* @return*/@ApiOperation(value="网关修改",notes="网关修改" ,httpMethod = "POST")@RequestMapping(value = "/POSTWayEdit", method = RequestMethod.POST)@ResponseBodypublic Object getWayEdit() {RegistGatewayReq registGatewayReq = new RegistGatewayReq();registGatewayReq.setGatewayId((long)527);//网关idregistGatewayReq.setAddress("sjz888");//网关安装地址registGatewayReq.setGatewayName("test888");registGatewayReq.setTime("2018-08-08");RegistGatewayResp regist = ammeterToolsUtil.registGateway(registGatewayReq);return regist;}/*** 删除网关* @return*/@ApiOperation(value="删除网关",notes="删除网关" ,httpMethod = "POST")@RequestMapping(value = "/deleteGateway", method = RequestMethod.POST)@ResponseBodypublic Object deleteGateway() {DeleteGatewayReq deleteGatewayReq = new DeleteGatewayReq();List<Long> gatewayIdList = new ArrayList<>();gatewayIdList.add((long)535);deleteGatewayReq.setGatewayIdList(gatewayIdList);DeleteGatewayResp deleteGatewayResp = ammeterToolsUtil.deleteGateway(deleteGatewayReq);return deleteGatewayResp;}/*** 查询网关下设备* @return*/@ApiOperation(value="查询网关下设备",notes="查询网关下设备" ,httpMethod = "POST")@RequestMapping(value = "/queryDevice", method = RequestMethod.POST)@ResponseBodypublic Object queryDevice() {QueryDeviceReq queryDeviceReq = new QueryDeviceReq();queryDeviceReq.setGatewayId((long)527);QueryDeviceResp queryDeviceResp = ammeterToolsUtil.queryDevice(queryDeviceReq);return queryDeviceResp;}/*** 网关下添加设备* @return*/@ApiOperation(value="网关下添加设备",notes="网关下添加设备" ,httpMethod = "POST")@RequestMapping(value = "/addDevice", method = RequestMethod.POST)@ResponseBodypublic Object addDevice() {AddDeviceReq addDeviceReq = new AddDeviceReq();addDeviceReq.setDeviceNo("设备编号——001");addDeviceReq.setDeviceName("设备名称");//addDeviceReq.setDeviceLabelInfoList();addDeviceReq.setGatewayId((long)534);addDeviceReq.setDeviceId((long)0);/* addDeviceReq.setDeviceTypeId();addDeviceReq.setOrderInGateway();addDeviceReq.setProtocolInfoList();addDeviceReq.setProtocolTypeId();addDeviceReq.setStartAddr();addDeviceReq.setTempletTypeId();*/AddDeviceResp addDeviceResp = ammeterToolsUtil.addDevice(addDeviceReq);return addDeviceResp;} }
4.效果展示
<dependency><groupId>com.drore.cloud</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.4</version></dependency> 使用该依赖替换集成swagger2时使用的UI依赖即可。
当时按照spring boot项目集成的插件进行设置,但是在接口名称上没有生成,还有待研究,先写下一个不太完整的日志。
转载于:https://www.cnblogs.com/kongweiteng/p/7443820.html
swagger2-接口文档相关推荐
- springboot集成Swagger2接口文档
<!-- Swagger 接口文档 --><dependency><groupId>io.springfox</groupId><artifact ...
- swagger2接口文档
文章目录 简介 Open API Swagger简介 Spring-fox 入门案例 第一步:导入依赖 第二步:编写controller类 第三步:编写启动类 第四步:运行启动类并访问ui页面 Swa ...
- SSM 配置 Swagger2 接口文档引擎
POM 增加 Swagger2 所需依赖,pom.xml 配置如下: <!-- Swagger2 Begin --> <dependency><groupId>io ...
- knife4j 替代swagger2接口文档管理
1 引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j ...
- 实体类 接口_spring-boot-route(五)整合Swagger生成接口文档
目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有 ...
- 整合swagger2生成Restful Api接口文档
整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...
- SpringBoot 使用Swagger2打造在线接口文档(附源代码)
点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...
- Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...
- idea swagger生成接口文档_Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据...
一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...
- Swagger2生成在线接口文档并导出pdf文件
文章目录 一,配置 1,pom依赖 2,通用配置 二,注解 三,主题 1,默认主题效果 2,添加依赖 3,添加配置 4,启动看效果 四,token验证 方法1,所有接口上添加 方法2,全局统一添加 五 ...
最新文章
- python使用fpdf生成pdf文件:配置多种语言字体写入多种文字
- 有传闻说,写好总结可以升职加薪?
- 2013年蓝桥杯题集C本科B
- SQLite基础知识学习
- CentOS卸载自带的JDK
- Android代码如何监控apk安装 卸载 替换
- android音频框架
- 无源晶振(Crystal)的负载电容
- crispr基因编辑_用CRISPR编程基因组
- Leetcode-机器人大冒险 (python)
- Android Kiosk 模式
- 女星长发如雪 上演现代版白发魔女传(组图)
- Trajectory generation for quadrotor while tracking a moving target in cluttered environment
- 英语单词复数到底读s还是z?
- 【分治】剑指 Offer 33. 二叉搜索树的后序遍历序列
- eclipse中遇到的问题(2)
- 机器学习第四课:SVM前置知识点(凸优化问题)
- 计算机丢失d3dcompile,电脑d3dcompiler43.dll文件丢失怎么办 文件丢失解决方法
- “.CHM文件”无法打开
- 华为云计算学习:FusionManager之ManageOne
热门文章
- 第七章节 类的抽象(接口)
- 排列:计算1!+2*2!+3*3!+...+n*n!
- npm设置仓库register
- python keyboard库_python库 pywinio虚拟键盘使用
- 腾讯校园招聘笔试 2019-8-17 第四题 另一种解法
- c++排序算法之 快速排序
- 指针和引用的相同与不同
- bzoj 3262: 陌上花开(cdq分治)
- istio使用教程和示例(导流,请求路由,访问拒绝,黑白名单,限速)
- python应用系列教程——python的GUI界面编程Tkinter全解