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

  • 圆通快递人工客服电话怎么转人工(圆通快递人工客服电话)(圆通快递人工客服几点下班)

    圆通快递人工客服电话怎么转人工(圆通快递人工客服电话)(圆通快递人工客服几点下班)

  • 手机版google地球怎么用不了(谷歌地球手机版使用方法)

    手机版google地球怎么用不了(谷歌地球手机版使用方法)

  • 手机卡突然无法使用(手机卡突然无法接打电话)

    手机卡突然无法使用(手机卡突然无法接打电话)

  • 声卡消原音功能有什么用(声卡消原音为什么消不完)

    声卡消原音功能有什么用(声卡消原音为什么消不完)

  • 华为手机微信置顶语怎么设置(华为手机微信置顶怎么取消)

    华为手机微信置顶语怎么设置(华为手机微信置顶怎么取消)

  • 手机放包里走路会不会有步数(手机放挎包里会有步数吗)

    手机放包里走路会不会有步数(手机放挎包里会有步数吗)

  • 三星2016+和三星2017有什么区别(三星w2016对比2017)

    三星2016+和三星2017有什么区别(三星w2016对比2017)

  • 钉钉解除好友是双向的吗(钉钉解除好友是怎么回事)

    钉钉解除好友是双向的吗(钉钉解除好友是怎么回事)

  • xsmax支持双卡吗(美版xsmax支持双卡吗)

    xsmax支持双卡吗(美版xsmax支持双卡吗)

  • 苹果手机提示灯怎么关(苹果手机提示灯一直闪怎么关)

    苹果手机提示灯怎么关(苹果手机提示灯一直闪怎么关)

  • 华为手机nova7pro上市时间(华为手机nova7pro防水吗)

    华为手机nova7pro上市时间(华为手机nova7pro防水吗)

  • 三星s20国行和港版有什么区别(三星s20国行和港行有什么区别)

    三星s20国行和港版有什么区别(三星s20国行和港行有什么区别)

  • 喜马拉雅网络请求失败是怎么回事(喜马拉雅网络请求失败是怎么回事安卓)

    喜马拉雅网络请求失败是怎么回事(喜马拉雅网络请求失败是怎么回事安卓)

  • 为什么快手实验室打不开(快手为什么没有实验室功能)

    为什么快手实验室打不开(快手为什么没有实验室功能)

  • gtx960的2g和4g差别大吗

    gtx960的2g和4g差别大吗

  • qq留言删除操作频繁多久又可以删(qq留言删除操作过于频繁怎么办)

    qq留言删除操作频繁多久又可以删(qq留言删除操作过于频繁怎么办)

  • 内存和外存相比主要特点是(内存和外存相比主要特点是存取速度快)

    内存和外存相比主要特点是(内存和外存相比主要特点是存取速度快)

  • 申请新的QQ号怎么申请的(申请新的qq号怎么登录)

    申请新的QQ号怎么申请的(申请新的qq号怎么登录)

  • vivo怎么将软件移到内存卡(vivo怎么将软件隐藏起来)

    vivo怎么将软件移到内存卡(vivo怎么将软件隐藏起来)

  • 苹果无线耳机敲击设置(苹果无线耳机敲击正确部位)

    苹果无线耳机敲击设置(苹果无线耳机敲击正确部位)

  • 拼多多下单时能备注吗(拼多多下单时能开发票吗)

    拼多多下单时能备注吗(拼多多下单时能开发票吗)

  • 华为智慧屏面板哪个公司产(华为智慧屏面板是哪个厂家)

    华为智慧屏面板哪个公司产(华为智慧屏面板是哪个厂家)

  • 抖音可以转发别人的视频吗(抖音可以转发别人的直播吗)

    抖音可以转发别人的视频吗(抖音可以转发别人的直播吗)

  • 快手上怎么跟主播连麦(快手怎么跟主播连麦开视频)

    快手上怎么跟主播连麦(快手怎么跟主播连麦开视频)

  • qq畅聊之火断了怎么办(qq畅聊之火消失了怎么补回来)

    qq畅聊之火断了怎么办(qq畅聊之火消失了怎么补回来)

  • 蚂蚁小宝卡免流范围(蚂蚁小宝卡免流量多少G)

    蚂蚁小宝卡免流范围(蚂蚁小宝卡免流量多少G)

  • 从农民手中收购粮食如何计算进项税
  • 印花税额计算及计税基础
  • 生产成本怎么核实
  • 个人独资企业有章程没有
  • 通行费电子发票可以抵扣吗
  • 预缴的税款
  • 企业内部控制调查问卷
  • 预交税费怎么做分录
  • 事业支出期末如何结转?
  • 应收账款管理制度设计毕业设计
  • 工程承建方给予的工期奖励如何做账?
  • 收到社会保险基金管理局转来的失业保险金,社保代发
  • 小规模纳税人按月申报还是按季申报
  • 留底进项税额办理退税需要什么手续
  • 劳务费做账要交个人所得税吗?
  • 咨询服务税收
  • 往来账的作用
  • 房产税怎么做账
  • 手续费进项可以抵扣吗
  • 在国外餐厅吃饭服务费和税费
  • 应征增值税不含税销售额和免税销售额
  • 华为鸿蒙系统的服务
  • mac系统 硬盘
  • windows10如何开启夜间模式
  • 电脑中毒了怎么弄
  • 固定资产属于金融负债吗
  • 手动ghost还原硬盘
  • 固定资产减值如何确定
  • kscreensaverapp.exe是什么
  • 总公司下的分公司如何做账
  • ajax不刷新页面
  • flex的作用及设置
  • php路径问题
  • 预缴纳税申报怎么不能保存
  • 什么是企业管理的首要职能
  • 已认证发票被作废
  • mongodb $and
  • json转pojo
  • 商铺转让费的会计分录
  • 发票校验码被章盖住了
  • 还有什么服务啊
  • 加计抵减和加计扣除是一个意思吗
  • 防伪税控服务费计入什么科目
  • 当月费用次月报销
  • 长期挂账其他应付款违反了哪项制度
  • 制造费用需要本年累计吗
  • 工程材料票占工程款的比例
  • 留底税额怎么入账
  • 公司返聘退休人员的员工比例有没有规定
  • 工程施工与工程成本的区别
  • 财务报表分析的目的
  • 公司流水账怎么做
  • 一个真正的企业应该具备哪些特征
  • Select count(*)、Count(1)和Count(列)的区别及执行方式
  • sql语句优化之用是什么
  • 用户画像
  • 电脑显示window
  • 苹果电脑mac设备怎么删除
  • Linux Kernel 4.5在3月15日发布最终版
  • centos禁止ip访问
  • linux文件目录的含义
  • w8系统文件夹怎么设置密码
  • win7不重装修复系统
  • 隐藏控制台窗口
  • mx1014
  • 高德地图自动跳出来
  • unity绘制曲线
  • perl 文件
  • android实现推送
  • python重复操作符
  • js控制style
  • echarts图表
  • js中表单
  • python 字典的字典
  • Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
  • js编写一个标准的单例模式类
  • 主管税务机关指的是
  • 青岛税务社保缴费下载平台
  • 土地买卖谈判开场陈述
  • 租赁发票交多少税费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设