SpringBoot整合Swagger2

SpringBoot整合Swagger2

  • 1.什么是Swagger2?(应用场景)
  • 2.项目中如何使用
    • 2.1 导入依赖
    • 2.2 编写配置类
    • 2.3 注解使用
      • 2.3.1 controller注解:
      • 2.3.2 方法注解
      • 2.3.3 实体类注解
      • 2.3.4 方法返回值注解
      • 2.3.5 忽略的方法
  • 3.UI界面

1.什么是Swagger2?(应用场景)

Swagger2 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务的接口文档。

进一步说,这个接口文档就是写给前端用的。有时候后端可能会忘记编写接口文件,那么Swagger2就帮后端开发者写。

2.项目中如何使用

2.1 导入依赖

这里导入了两个依赖包,第二个依赖包主要是访问swagger2UI界面

    <groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>

2.2 编写配置类

这个配置类的写法比较固定,其中getApiInfo()方法主要设置接口文档的一些信息,包括标题、描述以及版本等。api()这个Bean写法比较固定,其中basePackage中的地址不必要搞错,针对于不同接口,更换不同地址。

@Configuration
@EnableSwagger2
public class Swagger2Config {@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(getApiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.rql.controller")).paths(PathSelectors.any()).build();}private ApiInfo getApiInfo(){Contact contact = new Contact("name", "https://blog.csdn.net/qq_42569028?type=blog", "1476804025@qq.com");return new ApiInfoBuilder().title("标题:图书管理系统").description("描述:对图书进行增删改查操作").version("版本:项目版本V1.0").contact(contact).build();}
}

2.3 注解使用

2.3.1 controller注解:

@Api:修饰整个类,描述Controller的作用
tags:“说明该类的作用”

@RestController
@RequestMapping("/books")
@Api(tags = "图书管理系统")
public class BookController {

2.3.2 方法注解

@ApiOperation:对类中的方法进行描述

  • value=“说明方法的作用”

  • notes=“方法的备注说明”

@ApiImplicitParams:描述由多个 @ApiImplicitParam 注解的参数组成的请求参数列表
@ApiImplicitParam :描述一个请求参数,可以配置参数的中文含义,还可以给参数设置默认值

    name:参数名value:参数的汉字说明、解释required:参数是否必须传dataType :参数类型,默认String,其它值dataType=“int”defaultValue:参数的默认值paramType:参数放在哪个地方header --> 请求参数的获取:@RequestHeaderquery --> 请求参数的获取:@RequestParampath(用于restful接口)–> 请求参数的获取:@PathVariablebody(请求体)–> @RequestBody User userform(普通表单提交)
    @GetMapping("{pageNo}/{pageSize}")@ApiOperation("分页查询数据信息")@ApiImplicitParams({@ApiImplicitParam(name = "pageNo",value = "当前所在的页数"),@ApiImplicitParam(name = "pageSize",value = "分页的大小"),@ApiImplicitParam(name = "book",value = "书籍信息")})public R getPages(@PathVariable Integer pageNo, @PathVariable Integer pageSize,Book book){

2.3.3 实体类注解

@ApiModel:用对象来接收参数时,用于描述对象(实体类中的注解)

(这种一般用在post创建的时候,使用 @RequestBody 这样的场景,请求参数无法使用 @ApiImplicitParam 注解进行描述的时候 )

@ApiProperty:用对象接收参数时,描述对象的一个字段(实体类中属性的注解)

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "书籍信息")
public class Book {private Integer id;@ApiModelProperty(value = "书籍类型")private String type;@ApiModelProperty(value = "书籍名称")private String name;@ApiModelProperty(value = "书籍描述")private String description;private Integer deleted;
}

2.3.4 方法返回值注解

@ApiResponses:方法返回对象的说明
@ApiResponse:每个参数的说明
code:数字,例如400
message:信息,例如"请求参数没填好"


@ApiResponses({@ApiResponse(code = 200,message = "成功获取书籍信息"),@ApiResponse(code=400,message = "查询逻辑有问题")})public R getById(@PathVariable Integer id){return new R(true,bookService.getById(id));}

2.3.5 忽略的方法

@ApiIgnore:接口方法注解,添加此注解的方法将不会生成到接口文档中

3.UI界面

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/824147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈PyExecJS模块

浅谈PyExecJS模块 PyExecJS 是一个 Python 模块&#xff0c;用于在 Python 中执行 JavaScript 代码。 PyExecJS 模块的主要作用&#xff1a; 执行 JavaScript 代码&#xff1a;允许在 Python 环境中执行 JavaScript 代码&#xff0c;这在一些需要跨语言处理或评估 JavaScript…

短视频矩阵系统----技术源头开发

短视频矩阵系统--- 1. 确定账号类型和目标受众 2. 准备账号资料 3. 搭建系统框架 4. 开发核心功能 5. 测试和调试 6. 部署和维护 7. 推广和运营 在开发短视频账号矩阵系统源码时&#xff0c;可以使用一些开源框架和工具来提高开发效率和降低开发难度。同时&#xff0c;需要组…

Qt查询mysql表的信息解释

Qt如何查询表中的数据呢&#xff1f; 首先我们需要连接数据库&#xff0c;连接完了&#xff0c;我们进行操作数据库。 连接数据库的代码&#xff1a; bool MainWindow::connectToDatabase(QSqlDatabase &db, const QString &host, const QString &dbName, const…

如何使用Python进行Web开发,如Flask或Django?

Python是一种非常流行的Web开发语言&#xff0c;它提供了多种框架来帮助开发者快速构建Web应用程序。Flask和Django是两个非常受欢迎的Python Web框架&#xff0c;它们各有特点和优势。 Flask Flask是一个轻量级的Web应用框架&#xff0c;它易于上手且灵活。Flask适合小型项目…

抓取电商产品数据的方法|PHP|Python多语言环境|高并发需求|电商商品API接口数据采集

电商商品数据的抓取|电商平台商品API接口 客户在搭建电商网站时经常提出的诉求和相应的解决方案如下&#xff1a; 1. **网站设计和用户体验**&#xff1a; - 诉求&#xff1a;希望有吸引力、易用性强的网站设计&#xff0c;提升用户体验。 - 解决方案&#xff1a;设计专…

使用pdfbox将pdf转换成图片

导入pom文件 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.22</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifact…

react ts react-router 6路由配置

创建一个router.tsx文件 // // 配置路由信息 import { BrowserRouter,HashRouter, Routes, Route,createBrowserRouter,useRoutes } from "react-router-dom"; import React,{useState,lazy,Component } from "react" import { JSX } from react/jsx-runt…

无人机--行业生命周期分析

行业生命周期:无人机行业生命周期还相对较短&#xff0c;但已经经历了多个阶段的发展。从最初的军用无人机&#xff0c;到近年来民用无人机和商业无人机的快速发展&#xff0c;无人机行业正逐渐走向成熟阶段。未来随着技术的不断进步和应用领域的不断拓展&#xff0c;无人机行业…

项目7-音乐播放器5+注册账号

1.前端代码 MAPPER Insert("insert into user(username,password) values (#{username},#{password}) ")Integer insertUserInfo(String username,String password); Service public Result insertUserInfo(String username, String oldpassword,String newpasswo…

0 回归-海上风电出力预测

https://www.dcic-china.com/competitions/10098 分析一下&#xff1a;特征工程如何做。 时间特征&#xff1a; 小时、分钟、一个星期中的第几天、一个月中的第几天。这些可以作为周期特征的标识。比如周六周日的人流会有很大的波动&#xff0c;这些如果不告诉模型它是很难学习…

NLP地点位置抽取python库实现

在自然语言处理(NLP)中,抽取文本中的地点信息通常涉及到命名实体识别(NER,Named Entity Recognition)任务。Python 中常用的库如spaCy、NLTK、StanfordNLP、Hugging Face Transformers等均提供了相应的功能来识别文本中的地理位置实体。以下是一个使用spaCy库抽取地理位置…

^ SyntaxError: iterable unpacking cannot be used in comprehension

这个错误是Python中的一个语法错误&#xff0c;意思是在列表推导式中不能使用可迭代对象的解包操作符。列表推导式是一种简洁的创建列表的方式&#xff0c;但是在使用解包操作符时会导致语法错误。 解包操作符&#xff08;*&#xff09;用于将可迭代对象拆分为单独的元素&…

如何关掉地址空间随机化

如果我们的ru没有密码的话我们要先建一个密码 接着输入 su 进入root 接着输入 echo 0 > /proc/sys/kernel/randomize_va_space 就可以啦 接着可以cat查看是不是显示0&#xff0c;是的话就成功了

【Linux的git操作】

Linux学习笔记---010 Linux的git操作1、什么是gitee2、git 准备工作2.1、查看是否安装了 git 版本工具2.2、安装 git 工具/更新成最新版本2.3、在gitee上创建远程仓库&#xff08;略&#xff09;2.4、提交file的初始化操作 3、git的“三板斧”3.1、add3.2、commit3.3、push3.4、…

Flutter 像素编辑器#03 | 像素图层

theme: cyanosis 本系列&#xff0c;将通过 Flutter 实现一个全平台的像素编辑器应用。源码见开源项目 【pix_editor】 《Flutter 像素编辑器#01 | 像素网格》《Flutter 像素编辑器#02 | 配置编辑》《Flutter 像素编辑器#03 | 像素图层》 上一篇我们实现了编辑配置&#xff0c;…

React + 项目(从基础到实战) -- 第八期

ajax 请求的搭建 引入mockAP接口设计AJAX 通讯 前置知识 HTTP 协议 , 前后端通讯的桥梁API : XMLHttpRequest 和 fetch常用工具axios mock 引入 Mock.js (mockjs.com) 使用 mockJS 前端代码中引入 mockJs定义要模拟的路由 , 返回结果mockJs 劫持ajax请求(返回模拟的结果)…

2024运营级租房源码管理PHP后台+uniapp前端(app+小程序+H5)

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 一、详细介绍 房产系统 一款基于ThinkPHPUniapp开发的房产管理系统&#xff0c;支持小程序、H5、APP&#xff1b;包含房客、房东、经纪人三种身份。核心功能有&#xff1a;新盘销售、房屋租赁、地图找房、房源代理、…

RestFul 风格(SpringMVC学习笔记三)

1、什么是Restful风格&#xff1a; Restful就是一个资源定位及资源操作的风格。不是标准也不是协议&#xff0c;只是一种风格。基于这个风格设计的软件可以更简洁&#xff0c;更有层次&#xff0c;更易于实现缓存等机制。 2、使用Restful风格 接上一个笔记的测试类 package…

『Django』创建app(应用程序)

theme: smartblue 本文简介 点赞 关注 收藏 学会了 在《『Django』环境搭建》中介绍了如何搭建 Django 环境&#xff0c;并且创建了一个 Django 项目。 在刚接触 Django 时有2个非常基础的功能是需要了解的&#xff0c;一个是“app”(应用程序)&#xff0c;另一个是 url(路由…

Java工具类:封装Okhttp实现:Get、Post、上传/下载文件、Stream响应、代理ip

不好用请移至评论区揍我 原创代码,请勿转载,谢谢! 一、介绍 本文代码是引入Okhttp_v4.11.0,在这个基础上进行二次封装使调用方更加容易,只关注业务,而无需处理各种请求相关的重复性操作,类似文件类型请求体封装或者Form表单构造及body传参等一系列处理工具代码包括但不限…