当前位置:网站首页 > 技术博客 > 正文

swagger使用方法



学习视频链接:小狂神Springboot

每日格言

贵在坚持、难在坚持、成在坚持。

学习目标:

  • 了解Swagger的作用和概念
  • 了解前后端分离
  • 在SpringBoot中集成Swagger

故事还是要从前后端分离讲起啊

前后端分离:VUE+SpringBoot 基本上都用这一套

后端时代:前端只用管理静态页面,html===》后端,使用模版引擎 jsp=》后端主力

前后端分离时代

  • 后端:后端控制层,服务层,数据访问层【后端团队】
  • 前端:前端控制层,视图层,【前端团队】
    • 伪造后端数据,json,已经存在数据,不需要后端,前端工程依旧可以跑起来
  • 前后端如何交互 ====》API
  • 前后端相对独立,松耦合
  • 前后端甚至可以部署在不同的服务器上

产生一个问题:

  • 前后端联调,前端和后端人员无法做到及时协商,解决问题,导致问题爆发
  • 需要一个东西可以解决这个问题

解决问题:

  • 首先指定计划,实时更新API,较低集成风险
  • 早些年:指定word计划文档
  • 前后端分离:
    • 前端测试后端接口:postman
    • 后端提供接口,需要使用更新最新的消息及改动!

官网:https://swagger.io/

Swagger

  • 号称世界上最流行的api框架
  • Restful Api文档在线自动生成工具==》api文档和api定义开发
  • 直接运行,可以在线测试api接口;
  • 执行多种语言(c#,java,php)

在项目中使用Swagger需要Springfox

  • swagger2
  • ui
  1. 新建项目:SpringBoot-Swagger
  2. 导入相关依赖
     

    新版(3.0)的直接加入启动器

     
  3. 创建一个helloword的项目
  4. 配置Swagger==>就可以启动看看效果了 3.0版本后不需要在加入@enableopenapi,和@enableswagger2这两个注解,
     

    路径:http://localhost:8080/swagger-ui/index.html

配置呢,Swagger有自己的实例

我们使用docket来配置swagger的基本信息

 

应为没有set方法所以我们只能用构造器,貌似,还有一个什么biuder可以使用,有机会去试试

select()来设置扫描

扫描接口配置的方法:

apis:

  • RequestHandlerSelectors扫描接口的方式
  • basePackage指定扫描包
  • any()扫描全部
  • none()不扫描
  • withclassannotation 扫描类的注解(里面必须放注解的反射对象)

path:过滤哪里什么路径

  • paths(PathSelectors.ant("/hyc/"))
 

使用了自定义,那么swagger就不会去扫描其他的位置,会扫描你指定的这个报下的请求


可以发现,现在只有controller下的请求才会被扫描

是否开启Swagger

如果为false那我们就无法进入swagger-ui/index.html了

来判断是否处在环境中

 

用profiles来配置使用环境

分组,如何分组,

 

分组,如何多个分组?,我有多个docket就可以有多个.groupName

 

配置多个组

就是有很多个docket,

效果:

只要我们的接口中,有接口返回的是实体类,那么就是会被swagger扫描

我们写一个方法

 

返回的是实体类user,user里有两个字段,name和age

页面效果图:

那我们看到的如@API这些注解是干什么的呢?

用来解释类的用

 

用来解释类中的属性用

 

小疑问:我用private修饰的变量这么写就不显示,怎么办?

解决方案:写在get方法上就可以有效果了

测试接口十分好用,

我们可以测试自己的接口是否有效

小测试:

测试接口:

 

测试页面步骤图

查看提交后的接口信息

  1. Swagger最重大的使命就是使前后端人员之间的和谐关系有所好转
  2. 接口文档可以实时更新
  3. 可以在线测试后端接口,这个功能好评,爽的一批

Swagger是一个十分好用的工具,很多公司在使用

PS:处于安全考虑,我们在发布的时候需要关闭Swagger

版权声明


相关文章:

  • 137端口关闭有什么影响2025-04-30 16:29:59
  • 封装系统要几个条件2025-04-30 16:29:59
  • python中的激活函数2025-04-30 16:29:59
  • 异步与同步的区别2025-04-30 16:29:59
  • jstorm官网2025-04-30 16:29:59
  • css怎么给字体添加颜色2025-04-30 16:29:59
  • c语言swap函数怎么调用2025-04-30 16:29:59
  • java 抽象类 接口 区别2025-04-30 16:29:59
  • maven入门教程2025-04-30 16:29:59
  • 微软雅黑mac字体下载2025-04-30 16:29:59