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

  • 华为nova5EMUI9.1如何隐藏微信电话悬浮窗(华为nova5如何)

    华为nova5EMUI9.1如何隐藏微信电话悬浮窗(华为nova5如何)

  • 打印机打印模糊怎么调整(惠普打印机打印模糊)

    打印机打印模糊怎么调整(惠普打印机打印模糊)

  • 暗影精灵5重量(暗影精灵5p多重)

    暗影精灵5重量(暗影精灵5p多重)

  • airpods的触摸在哪里(airpods的触碰)

    airpods的触摸在哪里(airpods的触碰)

  • lbp2900打印机端口错误(lbp2900打印机端口怎么设置)

    lbp2900打印机端口错误(lbp2900打印机端口怎么设置)

  • 闲鱼举报卖家,卖家知道是谁举报的吗(闲鱼举报卖家并申请退款)

    闲鱼举报卖家,卖家知道是谁举报的吗(闲鱼举报卖家并申请退款)

  • 苹果密码错误多少次永久锁定(苹果密码错误多少分钟)

    苹果密码错误多少次永久锁定(苹果密码错误多少分钟)

  • 三星w2020是单卡还是双卡(三星w20 单卡)

    三星w2020是单卡还是双卡(三星w20 单卡)

  • 音频的格式有哪些(音频的格式有哪些后缀)

    音频的格式有哪些(音频的格式有哪些后缀)

  • 手机开不了热点怎么回事(为什么小米手机开不了热点)

    手机开不了热点怎么回事(为什么小米手机开不了热点)

  • 苹果11是什么系统版本(苹果13有几款)

    苹果11是什么系统版本(苹果13有几款)

  • oppor17充电慢怎么回事(oppor17pro充电速度变慢)

    oppor17充电慢怎么回事(oppor17pro充电速度变慢)

  • bd高清与hd高清的区别(电影hd和bd哪个画质好)

    bd高清与hd高清的区别(电影hd和bd哪个画质好)

  • mkv和mp4有什么区别(mkv与mp4格式有什么区别)

    mkv和mp4有什么区别(mkv与mp4格式有什么区别)

  • b站缓存的音频在手机哪里(B站缓存的音频在哪个文件夹)

    b站缓存的音频在手机哪里(B站缓存的音频在哪个文件夹)

  • word怎样自动生成目录索引(word文档怎样自动生成日期)

    word怎样自动生成目录索引(word文档怎样自动生成日期)

  • ps通道在哪里打开

    ps通道在哪里打开

  • 两个airpods怎么共享一首歌(怎么把两只airpods)

    两个airpods怎么共享一首歌(怎么把两只airpods)

  • 如何申请微信收款码牌(如何申请微信收款商业版)

    如何申请微信收款码牌(如何申请微信收款商业版)

  • 主屏分辨率越大越好吗(主屏幕分辨率大好还是小好)

    主屏分辨率越大越好吗(主屏幕分辨率大好还是小好)

  • 苹果11promax有指纹解锁吗(苹果11pro max的指纹在哪)

    苹果11promax有指纹解锁吗(苹果11pro max的指纹在哪)

  • 华为p30电池多大(华为p30pro换电池价格)

    华为p30电池多大(华为p30pro换电池价格)

  • 爱奇艺定向流量包是什么(爱奇艺定向流量怎么取消)

    爱奇艺定向流量包是什么(爱奇艺定向流量怎么取消)

  • 在win10系统中为什么任务管理器无法打开呢?(在window中)

    在win10系统中为什么任务管理器无法打开呢?(在window中)

  • 温哥华岛麋鹿瀑布吊桥鸟瞰图,加拿大 (© Ink Drop/Alamy)(温哥华瀑布)

    温哥华岛麋鹿瀑布吊桥鸟瞰图,加拿大 (© Ink Drop/Alamy)(温哥华瀑布)

  • rsync命令  远程数据同步工具(rsync连接)

    rsync命令 远程数据同步工具(rsync连接)

  • 减免税额科目
  • 买车交的保险
  • 委托加工物资的消费税计入成本吗
  • 购买二手车还需要交购置税吗
  • 国税地税合并是成功的还是失败的
  • 财务报表没申报以后可不可以补申报
  • 稳岗补贴属于不征税收入吗
  • 免费样品需要交印花税吗
  • 金税三期电子发票怎么领取
  • 跨年调整会计科目怎么写
  • 企业增资认缴是什么意思
  • 跨月应该如何开具红字发票?
  • 建筑业统一发票税率多少
  • 净利润为负数还要交所得税吗
  • 材料收到发票未到怎么记账
  • 运输公司租入的车辆如何核算
  • 企业受托研发产品有哪些
  • 多收账款怎么账务处理
  • 奖金部分
  • 增值税普通发票可以抵扣吗
  • 增值税税负的概念和如何确定税负
  • 小规模季度30万免税怎么做账
  • 财报申报逾期可不可以补报
  • 劳务报酬所得缴多少税
  • 中国的农业成本为什么高
  • 返利红字发票怎么开具
  • 委托加工物资成本计入
  • 公司账外废品收入怎么算
  • commandlineoptionsyntaxerror翻译详情
  • 发票认证的注意事项包括
  • 单位垫付资金如何做账
  • 进口报关费用会计分录
  • 实习生短期意外保险能企业所得税前扣除吗?
  • 强制关闭mac系统的快捷键
  • php怎么把图片存入mysql
  • 尼泊尔乡村
  • 电脑文件删除如何找到
  • info是什么软件
  • 桔梗的功效与作用吃法
  • php gd
  • gridview用法
  • 审稿意见范例
  • vue组件用法
  • df 命令执行显示不出来
  • 税务退附加税会计分录
  • 免税进项抵扣要做账吗
  • 原始凭证分割单样本图片
  • 主营业务冲减怎么做账
  • php生成器和迭代器理解
  • 季度预缴纳税申报表利润总额
  • 个人去开票要交税吗
  • 支付员工的餐费怎么入账
  • 计提加计抵减
  • 专用发票跨月退税怎么办
  • 买车险怎么打折
  • 外经证预缴税款网上申报
  • 房地产开发企业会计制度
  • 母子公司资金往来财税问题
  • 普通发票找不到了可以重开吗
  • 施工图审查费计入什么会计科目
  • 公司注销固定资产清理怎么做账务处理
  • unix的文件系统采用
  • windows找不到文件请确定文件名是否正确
  • 红帽子一个月能挣多少钱
  • award bios设置图解教程
  • vmstat命令
  • wininfo.exe - wininfo是什么进程
  • 苹果电脑dashboard什么意思
  • win10无法双击
  • c:windowssys:em32mtgyu.dll 内存分配访问无效的解决办法
  • win10专业版系统安装教程
  • 微信小程序用户名怎么改名
  • jquery的使用步骤
  • python神奇的小海龟
  • jQuery Easyui Tabs扩展根据自定义属性打开页签
  • python代码检测在线
  • fragment详解
  • 安卓的生命周期方法
  • 进口汽车增值税怎么算
  • 电力营销岗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设