位置: 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怎么用)

  • 怎样把淘宝首页固定背景?(怎样把淘宝首页变彩色)

    怎样把淘宝首页固定背景?(怎样把淘宝首页变彩色)

  • 苹果充电器是几伏几安(苹果充电器是几伏几安的)

    苹果充电器是几伏几安(苹果充电器是几伏几安的)

  • wps怎么居中到正中间(wps怎么居中到正中间左右对齐)

    wps怎么居中到正中间(wps怎么居中到正中间左右对齐)

  • 苹果11微信听筒模式声音很小怎么回事(苹果11微信听筒没有声音)

    苹果11微信听筒模式声音很小怎么回事(苹果11微信听筒没有声音)

  • word怎么设置文本轮廓(word怎么设置文档纸张大小)

    word怎么设置文本轮廓(word怎么设置文档纸张大小)

  • 信息与数据的联系(信息与数据的关系有哪些)

    信息与数据的联系(信息与数据的关系有哪些)

  • iphone11怎么下载软件(iphone11怎么下载不了软件)

    iphone11怎么下载软件(iphone11怎么下载不了软件)

  • 微信怎么发笔记视频(微信怎么发笔记详情)

    微信怎么发笔记视频(微信怎么发笔记详情)

  • oppoa92s 手机怎么关机(oppoa92s 手机怎么插手机卡)

    oppoa92s 手机怎么关机(oppoa92s 手机怎么插手机卡)

  • 电子秤开机一直滴滴响(电子秤开机一直叫)

    电子秤开机一直滴滴响(电子秤开机一直叫)

  • 电脑喇叭图标不见了怎么找出来?(电脑喇叭图标点击没反应)

    电脑喇叭图标不见了怎么找出来?(电脑喇叭图标点击没反应)

  • 微信深度清理中的文件可以清除吗(微信深度清理中的地图数据是怎么产生的)

    微信深度清理中的文件可以清除吗(微信深度清理中的地图数据是怎么产生的)

  • u盘为什么要求格式化(为什么u盘使用要求格式化)

    u盘为什么要求格式化(为什么u盘使用要求格式化)

  • qq等待验证怎么取消(qq等待验证可以撤回吗)

    qq等待验证怎么取消(qq等待验证可以撤回吗)

  • 短信悬浮窗是什么软件(短信悬浮窗是什么功能)

    短信悬浮窗是什么软件(短信悬浮窗是什么功能)

  • 华为手机保修时间从什么时间开始计算(华为手机保修时长)

    华为手机保修时间从什么时间开始计算(华为手机保修时长)

  • wps怎么删除多个页面(wps怎么删除多个空白行)

    wps怎么删除多个页面(wps怎么删除多个空白行)

  • 7650df硒鼓清零(7650dnf清零硒鼓)

    7650df硒鼓清零(7650dnf清零硒鼓)

  • 浏览器闪退怎么解决(浏览器闪退怎么解决手机)

    浏览器闪退怎么解决(浏览器闪退怎么解决手机)

  • mq8g2ch a是苹果几(mq8g2ch/a是什么版本)

    mq8g2ch a是苹果几(mq8g2ch/a是什么版本)

  • 苹果x反向充电设置(oppofindx6可以反向充电吗)

    苹果x反向充电设置(oppofindx6可以反向充电吗)

  • 快手的隐私用户什么意思(快手的隐私用户怎么关闭)

    快手的隐私用户什么意思(快手的隐私用户怎么关闭)

  • airpods带麦吗(airpods1有麦克风吗)

    airpods带麦吗(airpods1有麦克风吗)

  • 苹果电脑如何缩小图片无需第三方软件(苹果电脑如何缩小图片大小)

    苹果电脑如何缩小图片无需第三方软件(苹果电脑如何缩小图片大小)

  • Linux用户alias文件配置方法(linux alias永久生效)

    Linux用户alias文件配置方法(linux alias永久生效)

  • Win10 20H2系统桌面部分图标变白怎么办(win10桌面2怎么使用)

    Win10 20H2系统桌面部分图标变白怎么办(win10桌面2怎么使用)

  • nclaunch.exe - nclaunch进程有什么用 是什么意思

    nclaunch.exe - nclaunch进程有什么用 是什么意思

  • keyhook.exe是什么进程 有什么作用 keyhook进程查询(onekey.exe是什么)

    keyhook.exe是什么进程 有什么作用 keyhook进程查询(onekey.exe是什么)

  • 缴纳印花税的会计凭证
  • 城镇土地使用税的征税范围有哪些
  • 跨年度退货可以开红字发票吗
  • 青年企业家协会入会要求
  • 金税盘备份文件名
  • 非增值税应税项目可以抵扣进项税吗
  • 甲供材料税金如何结算
  • 支付境外销售佣金是不是属于完全在境外发生的服务
  • 应付税费包括
  • 零工受伤老板怎么赔偿
  • 营改增后11
  • 税务需要申报吗
  • 企业所得税政策最新2023税率
  • 金税盘一直更新登陆不进去
  • 职工福利费为什么是14%
  • 如何确定增值税以旧换新方式下销售货物的销售额
  • 2019一般纳税人租赁费税率
  • 企业做账会计需要什么资质
  • 经营性现金净流量是什么意思
  • 缴纳的教育费附加可以税前扣除吗
  • 发放的离职补偿金怎么做账
  • 企业退款如何走账
  • 代建工地
  • windows server 2008和r2
  • 土地出让金土地使用税
  • 计提减值时注意什么
  • 踩坑视频
  • vue+
  • 环绕着山的是什么歌
  • 委托证券公司购入公允价值为100万元的股票
  • php中实现文件上传需要用到哪几个函数
  • php中可用于设置变量类型的函数
  • vue动态组件component原理
  • 有哪些天气软件
  • 仓库盘点单模板
  • matlab进行图像处理
  • 中国版ChatGPT即将来袭-国内版ChatGPT入口
  • chage -l命令
  • 建筑业如何开票
  • 北京社保月平均工资
  • 小企业会计准则和企业会计准则的区别
  • Keepalived+HAProxy实现MySQL高可用负载均衡的配置
  • sqlserver时间格式化时分秒
  • 什么叫房屋租购同权
  • 软件公司会计科目
  • 无法收回的应收账款可以税前扣除吗
  • 电梯折旧率多少
  • 稳岗补贴操作流程
  • 车辆买的商业险全险,车辆出了事故,保险公司怎么赔
  • 购买员工福利品会计分录
  • 工程类的增值税
  • 用人单位劳务派遣人员工资怎么做账
  • 委托加工如何做会计处理
  • 分支机构企业所得税计提和缴纳数额不一致怎么办?
  • 企业进出口总额
  • 税金及附加有啥
  • 普通发票作废的金额会扣税吗
  • 股东 退股
  • 必须会的sql语句有哪些
  • 简单谈谈设计与市场的关系
  • 微软宣布将AI引入Office套件
  • dropbox app
  • ubuntu更换版本
  • win7系统任务栏跑到右侧怎么办
  • linux多线程编程电子书
  • 安装win7提示
  • win10系统经常弹出广告页面怎么解决
  • linux 如何
  • window10系统连接wifi
  • python的入门教程
  • python中list的用法例子
  • linux随机数生成1到100
  • node js模块
  • unity操作教程
  • javascript数组操作方法
  • 安卓自动登录脚本
  • js正则regexp
  • python sco
  • 财税专家刘杨简历图片介绍
  • 城管大队长级别高吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设