位置: IT常识 - 正文

Spring Boot 中使用 Swagger(spring boot dao)

编辑:rootadmin
前后端分离开发,后端需要编写接⼝说明⽂档,会耗费⽐较多的时间。 swagger 是⼀个⽤于⽣成服务器接⼝的规范性⽂档,并且能够对接⼝进⾏测试的⼯具。 作用 ⽣成接⼝说明⽂档 对接⼝进⾏测试 使用步骤 添加依赖 <!--swagger--> <dependency> <groupId>io.sprin ...

推荐整理分享Spring Boot 中使用 Swagger(spring boot dao),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:spring boot s,spring boot+,spring boot.,spring boot用法,spring bootcsdn,spring boot用途,spring boot怎么用,spring boot怎么用,内容如对您有帮助,希望把文章链接给更多的朋友!

前后端分离开发,后端需要编写接⼝说明⽂档,会耗费⽐较多的时间。swagger 是⼀个⽤于⽣成服务器接⼝的规范性⽂档,并且能够对接⼝进⾏测试的⼯具。

作用⽣成接⼝说明⽂档对接⼝进⾏测试使用步骤

添加依赖

<!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version></dependency>

写配置类 SwaggerConfig

/** * SwaggerConfig 接口文档配置类 */@Configuration@EnableSwagger2public class SwaggerConfig { /** * 配置接口文档生成规则 */ @Bean public Docket getDocket() { // 设置文档生成规则 return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) // 设置文档信息 .select() // 设置哪个包下的类需要生成文档 .apis(RequestHandlerSelectors.basePackage("com.luis.fmmall.controller")) .paths(PathSelectors.any()) // 定义哪些路径的接口需要生成文档 .build(); } /** * 设置文档信息 */ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("xxx接口文档") .description("这里是相关描述") .version("1.0") .contact(new Contact("luis", "https://www.cnblogs.com/luisblog", "xxx@qq.com")) .build(); }}

在控制器类上使用 Swagger 的注解进行相关说明

示例如下:

@RestController@RequestMapping("/user")@Api(tags = "用户管理", value = "提供用户的登陆、注册、修改等功能") //类说明public class UserController { @Resource private UserService userService; @GetMapping("/login") @ApiOperation(value = "登陆验证", notes = "用户登陆检查") //方法名说明 @ApiImplicitParams({ //参数说明 @ApiImplicitParam(dataType = "string", name = "username", value = "用户名", required = true), @ApiImplicitParam(dataType = "string", name = "password", value = "用户密码", required = false, defaultValue = "123") }) public ResultVo login(@RequestParam("username") String name, @RequestParam(value = "password", defaultValue = "123") String pwd) { return userService.checkLogin(name, pwd); }}

启动 SpringBoot 应用,访问 http://localhost:8080/swagger-ui.html

效果如下:

常用注解说明

@Api:类注解,使用在控制器类上,对类进行说明

控制器类 UserController 示例:

@Api(tags = "用户管理", value = "提供用户的登陆、注册、修改等功能") //类说明public class UserController {}

@ApiOperation:方法注解,使用在方法上,对方法名进行说明

@ApiImplicitParam 和 @ApiImplicitParams:方法注解,使用在方法上,对方法的形参进行说明

Spring Boot 中使用 Swagger(spring boot dao)

单个形参使用 @ApiImplicitParam,多个形参使用 @ApiImplicitParams

控制器类 UserController 的 login 方法示例:

@GetMapping("/login")@ApiOperation(value = "登陆验证", notes = "用户登陆检查") //方法名说明@ApiImplicitParams({ //参数说明 @ApiImplicitParam(dataType = "string", name = "username", value = "用户名", required = true), @ApiImplicitParam(dataType = "string", name = "password", value = "用户密码", required = false, defaultValue = "123")})public ResultVo login(@RequestParam("username") String name, @RequestParam(value = "password", defaultValue = "123") String pwd) { return userService.checkLogin(name, pwd);}

@ApiModel 和 @ApiModelProperty:当接⼝的形参或返回值为对象类型时,在实体类中添加此注解说明

接口的返回值为 ResultVo 对象示例:

@Data@NoArgsConstructor@AllArgsConstructor@ApiModel(value = "ResultVo 对象", description = "返回给前端的封装数据") //返回的类说明public class ResultVo { // 响应给前端的状态码 @ApiModelProperty("响应状态码") //属性说明 private int code; // 响应给前端的提示信息 @ApiModelProperty("提示信息") //属性说明 private String msg; // 响应给前端的数据 @ApiModelProperty("数据") //属性说明 private Object data;}

接口的形参为 User 实体对象示例:

@Data@NoArgsConstructor@AllArgsConstructor@ApiModel(value = "User 对象",description = "⽤户/买家信息")public class User {@ApiModelProperty(dataType = "int",required = false) private int userId; @ApiModelProperty(dataType = "String",required = true, value = "⽤ 户注册账号") private String userName; @ApiModelProperty(dataType = "String",required = true, value = "⽤ 户注册密码") private String userPwd; @ApiModelProperty(dataType = "String",required = true, value = "⽤ 户真实姓名") private String userRealname; @ApiModelProperty(dataType = "String",required = true, value = "⽤ 户头像url") private String userImg;}

@ApiIgnore:接⼝⽅法注解,添加此注解的⽅法将不会⽣成到接⼝⽂档中

swagger-ui 插件

发现一个规律,越学到最后,越是有惊喜,有不有?

swagger-ui 插件是一款 UI 美化插件,是基于 swagger 的。

之前使用的默认 swagger 文档和调试页面如果使用起来不太顺畅,可以试试这款 swagger-ui 插件。

使用

添加依赖

<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version></dependency>

重启 SpringBoot 应用,访问 http://localhost:8080/doc.html

效果如下:

还等什么,赶紧装插件去~

本文链接地址:https://www.jiuchutong.com/zhishi/311890.html 转载请保留说明!

上一篇:织梦dede:sql标签动态查询调用其它文章信息方法(织梦标签工具)

下一篇:帝国CMS如何以原文件名命名附件(帝国cms怎么用)

  • 抖音极速版怎么看浏览记录(抖音极速版怎么没有红包圈圈了)

    抖音极速版怎么看浏览记录(抖音极速版怎么没有红包圈圈了)

  • 华为nova4蓝牙连不上(华为nova4连接不上蓝牙耳机)

    华为nova4蓝牙连不上(华为nova4连接不上蓝牙耳机)

  • 听筒防尘网掉了没事吧(听筒防尘网掉了换一个多少钱)

    听筒防尘网掉了没事吧(听筒防尘网掉了换一个多少钱)

  • qq邮箱大于50MB附件的邮件如何发送(qq邮箱超大附件http600)

    qq邮箱大于50MB附件的邮件如何发送(qq邮箱超大附件http600)

  • jsn al00a华为是什么型号(华为jsn-al00是什么型号)

    jsn al00a华为是什么型号(华为jsn-al00是什么型号)

  • mac腾讯视频下载的视频在哪里(Mac腾讯视频下载地址修改)

    mac腾讯视频下载的视频在哪里(Mac腾讯视频下载地址修改)

  • 腾讯课堂多长时间生成回放(腾讯课堂多久会自动退出)

    腾讯课堂多长时间生成回放(腾讯课堂多久会自动退出)

  • oppor9splus自动重启是怎么回事(oppor9p自动重起怎么修)

    oppor9splus自动重启是怎么回事(oppor9p自动重起怎么修)

  • 华为p20有没有面部识别(华为p20有没有面容支付)

    华为p20有没有面部识别(华为p20有没有面容支付)

  • 酷睿m38100y相当于i几(酷睿m38100y相当于)

    酷睿m38100y相当于i几(酷睿m38100y相当于)

  • 淘宝差评号是什么意思(什么叫差评号)

    淘宝差评号是什么意思(什么叫差评号)

  • 为什么pdf打印出来缺一部分(为什么pdf打印出来字体不一样)

    为什么pdf打印出来缺一部分(为什么pdf打印出来字体不一样)

  • 唯品会退款一般几天到账(唯品会退款的钱几天到账)

    唯品会退款一般几天到账(唯品会退款的钱几天到账)

  • 爱奇艺视频怎么下载到本地(爱奇艺视频怎么提取出来)

    爱奇艺视频怎么下载到本地(爱奇艺视频怎么提取出来)

  • 计算器上off代表什么(计算器上off是什么)

    计算器上off代表什么(计算器上off是什么)

  • 手机为什么不能投电视(手机为什么不能横屏)

    手机为什么不能投电视(手机为什么不能横屏)

  • 华为的云相册在哪里找(华为云相册在哪里找出来)

    华为的云相册在哪里找(华为云相册在哪里找出来)

  • 苹果11两个摄像头怎么切换(苹果11两个摄像头挡住一个没有影响啊)

    苹果11两个摄像头怎么切换(苹果11两个摄像头挡住一个没有影响啊)

  • 华为p30摄像带美颜吗(华为p30相机自带的美颜功能能不能设置)

    华为p30摄像带美颜吗(华为p30相机自带的美颜功能能不能设置)

  • 网站规划的原则(简述网站规划的内容)

    网站规划的原则(简述网站规划的内容)

  • 苹果手机怎么看日历节日(苹果手机怎么看激活日期)

    苹果手机怎么看日历节日(苹果手机怎么看激活日期)

  • 相机的光圈大小有什么区别(相机的光圈大小是不是取决于镜头)

    相机的光圈大小有什么区别(相机的光圈大小是不是取决于镜头)

  • 京东申诉进度在哪查询(京东申诉要多久)

    京东申诉进度在哪查询(京东申诉要多久)

  • 蓝牙耳机密码设置方法(蓝牙耳机密码设置app)

    蓝牙耳机密码设置方法(蓝牙耳机密码设置app)

  • 全民k歌怎么直播(全民K歌怎么直播电影)

    全民k歌怎么直播(全民K歌怎么直播电影)

  • 水印相机打卡怎么修改(水印相机打卡怎么修改时间和日期位置)

    水印相机打卡怎么修改(水印相机打卡怎么修改时间和日期位置)

  • 华为鸿蒙开发官方解答:HarmonyOS Connect“碰一碰”出现问题怎么解决(华为鸿蒙系统开发平台)

    华为鸿蒙开发官方解答:HarmonyOS Connect“碰一碰”出现问题怎么解决(华为鸿蒙系统开发平台)

  • 个体工商户需要进项发票吗
  • 建筑劳务公司工人工资要申报个税吗
  • 票种核定表怎么填写
  • 小规模能否开利息专用发票?
  • 劳务派遣公司简介模板范文
  • 接受投资转入固定资产不影响现金流量变动
  • 免税的苗木发票抵扣税费怎么算
  • 无形资产摊销的年限规定
  • 纳税人涉税信息查询
  • 住宿费进项发票账务处理
  • 民办幼儿园怎么给老师交五险一金
  • 小规模纳税人零申报什么意思
  • 商铺 公司
  • 集团提供厂房是否需要缴纳印花税?
  • 利润的三个计算口径
  • 企业收到农产品普通发票
  • 购入办公楼按多少折算
  • windows10轻松使用是什么
  • 如何更换电脑开机动画
  • 个税代扣代缴手续费返还增值税税率
  • php5.4+mysql
  • 兼职人员工资如何扣税
  • 小规模纳税人销售商品会计分录
  • 资产划转的账务处理
  • 金融资产终止确认是什么意思
  • 营改增后土地增值税
  • 不能进行加计扣除的研发费用有哪些
  • LIO-SAM学习与运行测试数据集
  • 页面访问升级出错怎么办
  • 数字图像处理课后题答案
  • 利润表期初余额怎么填
  • js reverse
  • 设备安装工程施工及验收规范
  • 人力资源服务的发票明细
  • 本年利润借方余额是什么意思呢
  • 烟丝缴纳消费税计算
  • 小规模未开票收入超过30万如何申报
  • 增值税一般纳税人登记管理办法
  • 什么是存货周转期间
  • 应交税金应交增值税
  • 物流报关什么意思
  • 增值税申报表中期初未缴税额指什么
  • 其他货币资金科目主要指
  • 结转完工入库产品成本的会计分录
  • 退货回去需要把原包装保留吗
  • 金融服务银行
  • 应收账款占比高受哪些因素影响
  • 资产报废需要税费吗
  • 建筑业营改增后税率变化
  • 扣发当月工资是什么意思
  • 交易的价格
  • 会计的凭证怎么做账
  • 有存货的公司
  • 什么是记账凭证?有哪些分类
  • 史上最简单的飞镖
  • mysql的修改命令
  • w10预览版21343下载
  • ubuntu help
  • windows无法启动,可能原因
  • OS X Yosemite系统下载失败怎么办?OS X 10.10下载错误解决方法
  • 电脑开启虚拟wifi
  • win10系统怎么设置不锁屏和休眠
  • win10安装grads
  • javascript date format
  • 进入cmd命令
  • cmd文件操作基本命令清单
  • pm2启动nodejs
  • 浅谈关于混合模式教学的看法
  • node.js 微信小程序
  • javascript设计的初衷和特点
  • 你真的了解摩羯座吗
  • 大学的python选修课好学吗
  • jQuery 获取跨域XML(RSS)数据的相关总结分析
  • 海关免税金额现在是多少金额
  • 广州地税局官网办事点
  • 陕西电子税务局新版
  • 政府采购合同模板
  • 青海省地方税务局领导名单
  • 婚姻登记处婚俗改革宣传
  • 交管123发票审核
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设