关键词:
前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低。与新版的swagger3相比swagger2配置更少,使用更加方便。
一、pom文件中引入Swagger3依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
二、Application上面加入@EnableOpenApi注解
@EnableOpenApi
@SpringBootApplication
@MapperScan(basePackages = {"cn.ruiyeclub.dao"})
public class Swagger3Application {
public static void main(String[] args) {
SpringApplication.run(Swagger3Application.class, args);
}
}
三、Swagger3Config的配置
@Configuration
public class Swagger3Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger3接口文档")
.description("更多请咨询服务开发者Ray。")
.contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com"))
.version("1.0")
.build();
}
}
四、Swagger注解的使用说明
@Api:用在请求的类上,表示对类的说明
tags="说明该类的作用,可以在UI界面上看到的注解"
value="该参数没什么意义,在UI界面上也看到,所以不需要配置"
@ApiOperation:用在请求的方法上,说明方法的用途、作用
value="说明方法的用途、作用"
notes="方法的备注说明"
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query --> 请求参数的获取:@RequestParam
· path(用于restful接口)--> 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
dataType:参数类型,默认String,其它值dataType="Integer"
defaultValue:参数的默认值
@ApiResponses:用在请求的方法上,表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类
@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性
?Controller层的配置:
@Api(tags = "用户信息管理")
@RestController
@RequestMapping("userRecord")
public class UserRecordController extends ApiController {
/**
* 服务对象
*/
@Resource
private UserRecordService userRecordService;
/**
* 分页查询所有数据
* @param page 分页对象
* @param userRecord 查询实体
* @return 所有数据
*/
@ApiOperation("分页查询所有数据")
@GetMapping("page")
public R selectAll(Page<UserRecord> page, UserRecord userRecord) {
return success(this.userRecordService.page(page, new QueryWrapper<>(userRecord)));
}
/**
* 通过主键查询单条数据
* @param id 主键
* @return 单条数据
*/
@ApiOperation("通过主键查询单条数据")
@GetMapping("{id}")
public R selectOne(@PathVariable Serializable id) {
return success(this.userRecordService.getById(id));
}
/**
* 新增数据
* @param userRecord 实体对象
* @return 新增结果
*/
@ApiOperation("新增数据")
@PostMapping("insert")
public R insert(@RequestBody UserRecord userRecord) {
return success(this.userRecordService.save(userRecord));
}
/**
* 修改数据
* @param userRecord 实体对象
* @return 修改结果
*/
@ApiOperation("修改数据")
@PutMapping("update")
public R update(@RequestBody UserRecord userRecord) {
return success(this.userRecordService.updateById(userRecord));
}
/**
* 删除数据
* @param idList 主键结合
* @return 删除结果
*/
@ApiOperation("删除数据")
@DeleteMapping("delete")
public R delete(@RequestParam("idList") List<Long> idList) {
return success(this.userRecordService.removeByIds(idList));
}
}
五、Swagger界面效果
?Swagger的访问路径由port/swagger-ui.html改成了port/swagger-ui/ 或port/swagger-ui/index.html,项目演示代码在springboot-swagger
如果这篇文章对你有帮助的话,记得给我点个赞,你的鼓励是对我最大的支持!谢谢?
springspringboot2.6.4整合swagger3.0.0填坑
【Spring】SpringBoot2.6.4整合Swagger3.0.0填坑仓库配置使用如下依赖<!--swagger-ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><vers 查看详情
springboot集成swagger3(代码片段)
...版 如果有还在用2.x版本的请参考时注意区分二,SpringBoot集成swagger3pom.xml集成Swagger3依赖<!--swagger3接口文档生成器--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> &l... 查看详情
springboot-自动生成接口文档
...有许多成熟的第三方库可以自动为项目生成接口文档,在SpringBoot中,最常使用的接口文档自动生成库就是Swagger。本篇博文主要介绍在SpringBoot中集成Swagger3的方法。更多详细信息,请参考官网:Specification简单来说,OpenAPI就是定... 查看详情
springboot整合springfox3+knife4j,生成接口文档
参考技术A在这篇博客中,会记录springfox3的基本配置与使用;由于swagger-ui看得不是很习惯,额外引入了knife4j,使用增强版本的swagger的前端ui。注意@ConditionalOnProperty注解声明了当springfox.documentation.enabled为true时启用配置,而且默... 查看详情
springboot使用springdoc库的swagger3.0(代码片段)
Swagger定义Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,... 查看详情
mybatisplus的代码生成器使用详解(整合springboot)(代码片段)
MybatisPlus代码生成器使用详解(整合springboot)文章目录MybatisPlus代码生成器使用详解(整合springboot)代码生成器概述整合springboot步骤第一步:创建数据库表第二步:导入jar包第三步:去配置文件第四步... 查看详情
springboot+swagger3配置(代码片段)
1.添加swagger3的starter依赖包<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>2. 查看详情
[springboot系列]springboot如何整合ssmp
文章目录基于SpringBoot实现SSMP整合基于SpringBoot实现SSMP整合SpringBoot之所以好用,就是它能方便快捷的整合其他技术,这里我们先介绍四种技术的整合:整合JUnit整合MyBatis整合MyBatis-Plus整合Druid整合JUnitSpringBoot技术的定位用于简化... 查看详情
重学spring系列之swagger2.0和swagger3.0(代码片段)
重学Spring系列之Swagger2.0和Swagger3.0使用Swagger2构建API文档为什么要发布API接口文档整合swagger2生成文档书写swagger注解生产环境下如何禁用swagger2使用Swagger2Markup实现导出API文档生成AsciiDoc通过Java代码来生成通过Maven插件来生成可以... 查看详情
springboot整合swagger-ui快速生成在线api文档
目录SpringBoot整合Swagger-ui实现在线API文档本篇要点一、restful风格简单介绍二、SpringBoot与Swagger-ui快速整合1、第一种方式:使用官方依赖2、第二种方式:使用第三方依赖三、swagger-ui的基本注解源码下载参考阅读SpringBoot整合Swagger-u... 查看详情
mybais-plus整合springboot,自动代码生成。
mybais-plus整合springboot,自动代码生成。第一步:导包:mybatis-plus-generator包和freemarker包<dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</a 查看详情
springboot:后台接口文档-基于swagger3(代码片段)
目录前言:什么是Swagger起步:(只需简单的3步)加载依赖添加注解@EnableOpenApi启动SpringBoot,访问Swagger后台界面配置:基于Java的配置注解:Swagger2和Swagger3做对比源码:https://github.com/Jalon201 查看详情
springboot:后台接口文档-基于swagger3(代码片段)
目录前言:什么是Swagger起步:(只需简单的3步)加载依赖添加注解@EnableOpenApi启动SpringBoot,访问Swagger后台界面配置:基于Java的配置注解:Swagger2和Swagger3做对比源码:https://github.com/Jalon201 查看详情
springboot系列springboot整合持久层(代码片段)
这里写目录标题四、SpringBoot整合持久层4.1SpringBoot项目工程搭建4.2MyBatis逆向工程生成pojo和mapper文件1先建立包和文件夹,用于存储配置文件和逆向生成pojo和mapper文件2先引入pom依赖文件4.3应用实现增删改查四、SpringBoot整合持... 查看详情
springboot整合mybatis踩坑
springboot整合mybaits过程中,调用接口时报错:org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound): 分析了下报错堆栈信息,认为是找不到*Mapper.xml导致,网上搜索下他人博客,以为是IDEA导致*Mapper.xml无法生成,于... 查看详情
mybatisplus的代码生成器使用详解(整合springboot)(代码片段)
MybatisPlus代码生成器使用详解(整合springboot)文章目录MybatisPlus代码生成器使用详解(整合springboot)代码生成器概述整合springboot步骤第一步:创建数据库表第二步:导入jar包第三步:去配置文件第四步... 查看详情
springboot集成swagger2或swagger3
swagger2的使用1.导入swagegr2和swagegr-ui的依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</vers 查看详情
springboot整合mybatisplus,并自动生成代码(代码片段)
mybatispluspom.xml导入依赖<!--mp--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version>< 查看详情