【原创】Sagger使用
Swagger使用
1. Spring MVC配置文件中的配置
<mvc:annotation-driven/>
<context:component-scan base-package="com.demo"/>
设置使用注解的类所在的jar包,只加载controller类
<mvc:default-servlet-handler />
使用 Swagger Restful API文档时,添加此注解
2. maven依赖
<properties> <spring.version>4.2.6.RELEASE</spring.version> <servlet.version>3.1.0</servlet.version> <swagger2.version>2.5.0</swagger2.version> </properties> <dependencies> <!-- swagger开始 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger2.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger2.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-staticdocs</artifactId> <version>${swagger2.version}</version> </dependency> <!-- swagger结束 --> <!--spring--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!--web--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.version}</version> <scope>provided</scope> </dependency> </dependencies> |
3. Swagger注解配置
@RequestMapping(value = "/add", method = RequestMethod.POST) @ApiOperation(value = "添加用户", notes = "增加用户") public Result<UserVo> add(@ApiParam(name = "userName",value = "用户昵称",required = true)@RequestParam(name = "userName",required = true)String userName, @ApiParam(name = "mobile",value = "手机",required = true)@RequestParam(name = "mobile",required = true)String mobile, @ApiParam(required = true, name = "email", value = "邮箱") @RequestParam(name = "email", required = true) String email ) { UserVo userVo=new UserVo(); userVo.setUserId(System.currentTimeMillis()); userVo.setUserName(userName); return new Result<UserVo>(Constants.SUCCESS,Constants.MSG_SUCCESS,userVo); } |
@ApiOperation(value = "创建用户", notes = "根据UserVo对象创建用户") @RequestMapping(value = "/create", method = RequestMethod.POST) public String postUser(@ApiParam(required = true, name = "userVo", value = "实体UserVo") @RequestBody UserVo userVo) { return "success"; } |
@RequestMapping(value = "/getUser", method = RequestMethod.GET) @ApiOperation(value = "获取用户", notes = "根据UserVo获取用户") @ResponseBody public Result<UserVo> getUser() { UserVo userVo=new UserVo(); userVo.setUserId(System.currentTimeMillis()); userVo.setUserName("UserName"); return new Result<UserVo>(Constants.SUCCESS,Constants.MSG_SUCCESS,userVo); } |
SwaggerConfig类编写示例
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket userApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("用户") .select() // 选择那些路径和api会生成document .apis(RequestHandlerSelectors.basePackage("com.zyx.controller")) .paths(PathSelectors.any()) // 对所有路径进行监控 .build() .apiInfo(userInfo()); } private ApiInfo userInfo() { ApiInfo apiInfo = new ApiInfo("用户相关接口",//大标题 "用户有关的接口,包括增加删除用户",//小标题 "0.1",//版本 "杭州", new Contact("zyx", "", ""),// 作者 "swagger url",//链接显示文字 ""//网站链接 ); return apiInfo; } @Bean public Docket otherApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("其它") .select() // 选择那些路径和api会生成document .apis(RequestHandlerSelectors.basePackage("com.zyx.controller")) .paths(PathSelectors.any()) // 对所有路径进行监控 .build() .apiInfo(otherInfo()); } private ApiInfo otherInfo() { ApiInfo apiInfo = new ApiInfo("其它相关接口",//大标题 "其它有关的接口,包括增加删除其它",//小标题 "0.1",//版本 "杭州", new Contact("zyx_other", "", ""),// 作者 "点击",//链接显示文字 ""//网站链接 ); return apiInfo; } } |
注:将SwaggerConfig在Spring注入管理 <bean class="com.demo.config.SwaggerConfig"/>
@ApiModel(value = "用户信息") public class UserVo { @ApiModelProperty(value = "用户id", required = true) private long userId; @ApiModelProperty(value = "昵称", required = true) private String userName; public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } } |
4. 界面展示
在浏览器输入地址:http://localhost:8080/swagger-ui.html
【原创】Sagger使用的更多相关文章
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- 【原创分享·微信支付】C# MVC 微信支付教程系列之现金红包
微信支付教程系列之现金红包 最近最弄这个微信支付的功能,然后扫码.公众号支付,这些都做了,闲着无聊,就看了看微信支付的其他功能,发现还有一个叫“现金红包”的玩意,想 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付
微信支付教程系列之公众号支付 今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- GJM : C#设计模式汇总整理——导航 【原创】
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- 信息安全-5:RSA算法详解(已编程实现)[原创]
转发注明出处:http://www.cnblogs.com/0zcl/p/6120389.html 背景介绍 1976年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加 ...
- Atitit.你这些项目不都是模板吗?不是原创 集成和整合的方式大总结
Atitit.你这些项目不都是模板吗?不是原创 集成和整合的方式大总结 1.1. 乔布斯的名言:创新即整合(Creativity is just connecting things).1 1.2. ...
随机推荐
- Webpack Tapable原理详解
directory - src - sim ---- 简单的模拟实现 - /.js$/ ---- 使用 代码已上传github, 地址 Detailed Webpack 就像一条生产线, 要经过一系列 ...
- 姆洋自主研发堆(heap)头文件
这是姆洋自主研发的heap头文件 将其录入IDE,并保存为heap.h,保存在存放C++头文件的文件夹里(我只知道Dev-C++是Dev-cpp/MinGW64/lib/gcc/x86_64-w64- ...
- jzoj5196. 【NOIP2017提高组模拟7.3】B (数论,巧妙的暴力)
Description
- pt-online-schema-change 脚本化
mysql在线更改表可用工具 pt-online-schema-change 更改,或者用gh-ost更改.pt-online-schema-change 在原表创建索引,跟踪新插入的数据.gh-os ...
- python的pymysql模块简介
一.介绍 在python中用pymysql模块来对mysql进行操作,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pip3 install pymysql 二.操作简介 import py ...
- PHP中有关IPV4 和IPV6地址转换以及其它一些常见问题
这里主要介绍一下 IPV4 / IPV6 在 PHP / MySQL 中如何转换.以及中间容易碰到的一些问题. 首先介绍两个函数: ip2long:将 IPV4 的字符串互联网协议转换成长整型数字 i ...
- Linux Shell常用命令(长期更新)
#判断某个字段是否匹配指定值 awk -F"," '{if($4=="value"){print $1} else {print $0}}' file.txt ...
- sqlite3 简单实用方法
打开数据库:sqlite3.exe test.db 显示所有表: .tables 退出 sqlite3:.quit 还有个问题,已经打开一个数据库文件了. 不知道如何在不退出命令行的情况下,更换另一个 ...
- Rmarkdown:输出pdf设置
输出pdf需要安装Ctex --- title: "first markdown" author: "name" date: "`r format(S ...
- python--基本类型之数值
Number(数字): 数字类型创建: a = 10b = ab = 20 pint('a : 'a)pint('b : 'b) 数据类型转换: int(x,[,base]) 将 x 转换为一个整数f ...