springboot配置Swagger3.0

news/2024/10/30 11:30:32/

springboot配置Swagger3.0

1、pom加入依赖

我们创建一个SpringBoot项目,引入 swagger3 依赖

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

2、启动类上加入注解

在启动类上加入两个注解,即可开启 swagger3

@SpringBootApplication
@EnableSwagger2
@EnableOpenApi
public class NacosApplication {public static void main(String[] args) {SpringApplication.run(NacosApplication.class, args);System.out.println("我是 nacos 微服务");}
}

对于swagger,简单的配置就可以看到页面了,我们我输入 localhost:8080/swagger-ui/index.html

3、创建Swagger配置类

对于swagger,我们可以对 index.html 页面做一些配置,比如邮箱、姓名、git地址等。

@Configuration
public class SwaggerConfiguration {@BeanDocket docket() {return new Docket(DocumentationType.OAS_30)// 配置网站基本信息.apiInfo(new ApiInfoBuilder().title("nacos微服务接口文档").version("v1.0").description("在线nacos微服务接口文档").contact(new Contact("choleen", "https://choleen95.github.io/","")).build()).select().apis(RequestHandlerSelectors.basePackage("com.example.nacos.controller")).build();}}

目前,对于请求,我们配置了对于controller包下的所有类的接口,都展示在上面。

4、创建接口-三种

目前创建三种接口,一种是form表单传值,一种是路径传参,一种是实体传参

@Api("查询演出接口")
@RequestMapping("/hello/")
@RestController
public class HelloController {private static final Logger logger = LoggerFactory.getLogger(HelloController.class);@Resource(name = "activityMapper")ActivityMapper activityMapper;@ApiOperation("根据场地城市及Id查询演出表")@ApiImplicitParams({@ApiImplicitParam(name = "venueCity", value = "场地城市"),@ApiImplicitParam(name = "id", value = "id")})@GetMapping("activity")public ResponseHelper sayHello(String venueCity, @RequestParam(required = true) String id) {List<Activity> list = activityMapper.queryEntityList(venueCity, id);return ResponseHelper.build(200, list);}@ApiOperation("根据id查询演出")@ApiImplicitParam(name = "id", value = "id")@GetMapping("{id}")public ResponseHelper queryInfo(@PathVariable(value = "id")Long id) {Activity activity = activityMapper.selectById(id);return ResponseHelper.build(200, activity);}@ApiOperation("分页查询演出")@ApiImplicitParam(name = "activity", value = "演出实体")@GetMapping("queryByPage")public ResponseHelper queryByActivity(@RequestBody Activity activity) {QueryWrapper<Activity> wrapper = new QueryWrapper<>();wrapper.eq("venue_city",activity.getVenueCity()).eq("id",activity.getId());PageDTO<Activity> page = new PageDTO<>(1,10);PageDTO<Activity> page1 = activityMapper.selectPage(page, wrapper);return ResponseHelper.build(200, page1);}}

这里有几个参数需要介绍一下。

  • @Api 在类上,标明此Controller的用处、
  • @ApiOperation 表明此接口的用处
  • @ApiImplicitParam 请求一个入参的说明,有name、value、defaultValue等属性
  • @ApiImplicitParams 若有多个入参,此是一个数组,把多个ApiImplicitParam放进去即可
  • @RequestParam(required=true) 和 @ApiImplicitParam中的必填不同,一个是开发者指定参数必传,一个是swagger调用时必填,但对后台无影响。
  • 若入参是一个实体,比如第三个分页查询 ,可以在实体中也注入 swagger 注解,在前端页面也可让开发者了解参数结构
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "activity", description = "演出表")
@TableName("activity")
public class Activity implements Serializable {private static final long serialVersionUID = -3563130625676560116L;@ApiModelProperty(value = "主键ID")private Long id;@ApiModelProperty(value = "演出名称")private String name;@ApiModelProperty(value = "演出起始时间")@JSONField(format = "yyyy-MM-dd HH:mm:ss")private Date showStartTime;@ApiModelProperty(value = "演出结束时间")@JSONField(format = "yyyy-MM-dd HH:mm:ss")private Date showEndTime;@ApiModelProperty(value = "场地城市")private String venueCity;@ApiModelProperty(value = "场地名称")private String venueName;@ApiModelProperty(value = "场地地址")
  • @ApiModel 是描述此类的信息
  • @ApiModelProperty 是描述字段的信息

5、swagger调试

接口编写好了,我们可以去 localhost:8080/swagger-ui/index.html 页面上去调试。

在这里插入图片描述

点击 try it 然后再填入参数,点击 Excute ,即可再返回中看到结果。


http://www.ppmy.cn/news/98765.html

相关文章

电脑msvcp120.dll缺失怎么办?由于找不到msvcp120.dll的解决方案

MSVCP120.dll文件是Windows操作系统中的一种动态链接库文件。它是由Microsoft C软件包提供的重要组件。当系统提示“MSVCP120.dll文件缺失”时&#xff0c;可能会导致某些应用程序无法正常运行。 以下是修复MSVCP120.dll缺失问题的几种方法&#xff1a; 方法一&#xff1a;修复…

一台服务器通过nginx安装多个web应用

1.首先安装nginx网站服务器 yum install nginx 2.nginx 的主配置文件&#xff1a;/etc/nginx/nginx.conf (一台服务器有两个域名部署) 我们在/etc/nginx/nginx.d/下创建一个conf文件&#xff0c;这个文件会被嵌套到主配置文件当中 server { listen 80; …

VS2022发布独立部署的.net程序

.net core支持依赖框架部署和独立部署两种方式&#xff0c;之前学习时是在VSCode中使用dotnet命令发布的。但是在VS2022中却不知道该如何设置。以获取PDF文件使用字体的项目为例&#xff0c;VS2022中默认编译的是依赖框架部署方式&#xff08;编译的结果如下图所示&#xff09;…

动态规划2:题目

目录 第1题 Fibonacci 第2题 字符串分割(Word Break) .第3题 三角矩阵(Triangle) 第4题 路径总数(Unique Paths) 第5题 最小路径和(Minimum Path Sum) 第6题 背包问题 第7题 回文串分割(Palindrome Partitioning) 第8题 编辑距离(Edit Distance) 第9题 不同子序列(Dist…

【面试集锦 - 嵌入式软件工程师 - MCU篇】

MCU / 单片机 常用芯片 一般会问一下使用的芯片是什么&#xff0c;并对其做一些介绍。 嵌入式系统常用的微控制器单元&#xff08;MCU&#xff09;是一种集成了处理器核心、存储器、输入/输出接口和其他外设功能的芯片。它们被广泛应用于各种嵌入式系统&#xff0c;如家电、汽…

CVPR2023(论文笔记)

Boosting Verified Training for Robust Image Classifications via Abstraction 基于抽象的鲁棒图像分类模型高效训练与验证方法&#xff1a; 针对问题&#xff1a; 深度神经网络在面对对抗性攻击时的鲁棒性问题 提出了一种基于抽象的、经过认证的训练方法&#xff0c;用于…

计算机网络五 传输层

传输层 概念 传输层是指ISO/OSI模型中的第四层&#xff0c;在计算机网络中起着非常重要的作用。它负责数据在网络中的传输&#xff0c;管理数据传输的可靠性和流量控制&#xff0c;保证数据在网络中不会丢失或重复。 提供的服务 传输层提供的主要服务有两种&#xff0c;分别…

Git常见命令快速参考

本文是笔者学习廖雪峰的Git教程记录的笔记&#xff0c;算是对其内容的精简&#xff0c;仅供查询和回顾之用。若有疏漏&#xff0c;还请查看其原文。 基本概念 Git进行版本控制&#xff0c;管理的是修改而非文件。分清楚工作区&#xff0c;版本库&#xff0c;暂存区(stage)就能…