SpringBoot 配置Swagger3.0接口文档

2023-10-18 02:28

本文主要是介绍SpringBoot 配置Swagger3.0接口文档,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Swagger配置类 

第一步,需要在pom中引入相应的配置,这里使用的是3.0.0版本,SpringBoot使用的2.5.9 版本。

<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

第二步

在代码中加入相应的配置,新建config包,写入SwaggerConfig配置类:

package com.cheng.springboot.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;@Configuration
public class SwaggerConfig {@Beanpublic Docket docket() {return new Docket(DocumentationType.SWAGGER_2)
//                .groupName("标准接口").apiInfo(apiInfo()).useDefaultResponseMessages(true).forCodeGeneration(false).select().apis(RequestHandlerSelectors.basePackage("com.cheng.springboot.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("测试接口文档")
//                .description("认识接口文档")
//                .termsOfServiceUrl("...地址")
//                .contact(new Contact("cheng","htt","邮箱")).version("1.0").build();}}

.apis(RequestHandlerSelectors.basePackage(“com.cheng.springboot.controller”))这个配置是用来指定我们的接口层的位置,大家可以根据你自己项目的实际情况来进行修改。.apiInfo()是定义一些我们项目的描述信息,可以根据实际需要在参数中修改。需要注意的是配置类的头部需要加上@Configuration。

2. 使用swagger

package com.cheng.springboot.controller;import com.cheng.springboot.entity.User;
import com.cheng.springboot.mapper.UserMapper;
import com.cheng.springboot.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.List;
import java.util.Map;@RestController
@AllArgsConstructor
@Api(value = "用户管理",tags = {"用户相关接口"})
@RequestMapping("/user")
public class UserController {private final UserMapper userMapper;private final UserService userService;@PostMapping("/insert")@ApiOperation(value = "添加用户")public boolean save(@RequestBody  User user){return  userService.saveUser(user);}@DeleteMapping("/delete/{id}")@ApiOperation(value = "删除用户")public Integer delete(@ApiParam(name="id",value="用户id",required=true) @PathVariable Integer id){return userMapper.deleteById(id);}// 分页查询// @RequestParam接收// limit第一个参数(pagenum-1)*pageSize@GetMapping("/page")@ApiOperation(value = "查询用户(分页)")public Map<String, Object> index(@ApiParam(name="pageNum",value="页码",required=true) @RequestParam Integer pageNum,@ApiParam(name="pageSize",value="每页几条",required=true) @RequestParam Integer pageSize){pageNum = (pageNum-1)*pageSize;Integer total = userMapper.selectTotal();Map<String, Object> res = new HashMap<>();List<User> data = userMapper.selectPage(pageNum, pageSize);res.put("data",data);res.put("total",total);return res;}
}

实体类中如何使用?

@ApiModel注解是用在接口相关的实体类上的注解,它主要是用来对使用该注解的接口相关的实体类添加额外的描述信息,常常和@ApiModelProperty注解配合使用

@ApiModelProperty注解则是作用在接口相关实体类的属性(字段)上的注解,用来对具体的接口相关实体类中的参数添加额外的描述信息,除了可以和 @ApiModel 注解关联使用,也会单独拿出来用。

作用域不同,@ApiModel作用在类上,@ApiModel作用来属性上

package com.cheng.springboot.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;@Data
@TableName(value = "user")
@ApiModel("userDTO")
public class User {@ApiModelProperty("用户id")@TableId(type = IdType.AUTO)private Integer id;@ApiModelProperty("用户名")private String username;@ApiModelProperty("密码")@JsonIgnoreprivate String password;@ApiModelProperty("昵称")private String nickname;@ApiModelProperty("邮箱")private String email;@ApiModelProperty("手机号")private String phone;@TableField(value = "address")@ApiModelProperty("地址")private String address;}

访问地址:http://localhost:9091/swagger-ui/index.html 

这篇关于SpringBoot 配置Swagger3.0接口文档的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/229573

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华