springboot整合swagger3如何生成接口文档?

     2022-04-03     171

关键词:

前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,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>< 查看详情