SpringBoot+Swagger2实现可视化API文档流程

embedded/2024/10/19 1:29:58/

 场景

swagger官网:

https://swagger.io/

效果

会将所有的接口Controller可视化显示

点击其中的Controller显示具体的接口方法,左边是请求的方式,中间是接口的url,右边是接口说明。

点击具体的方法,显示方法说明和参数说明

输入相应的参数,点击Execute,可以在线测试接口。

可以查看接口返回数据。

实现

添加swagger2依赖

打开项目的pom.xml

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

新建Swagger2配置类

在项目启动类的同级,新建Swagger2的配置类Swagger2

package com.ws.api;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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
public class Swagger2 {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.ws.api.sys.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("API接口").description("").version("1.0").build();}}

注:

1.通过@Configuration注解来让Spring加载该类配置。

2.通过@EnableSwagger2注解启用Swagger2。

3. .apis(RequestHandlerSelectors.basePackage("com.ws.api.sys.controller"))来指定扫描Controller的包。

为接口添加文档说明

找到Controller下的具体的接口的方法。

为接口API添加说明和说明信息

@ApiOperation(value="生成单件质检单", notes="上位机扫码,生成单件质检单")

为接口添加参数说明

@ApiImplicitParam(name = "trayCode", value = "托盘编码", required = true, dataType= "String")

多个参数的写法:

 @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long"),@ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")})

完整示例代码:

@Description("扫码生成单件质检单")@RequestMapping(value="/generatingSingleJianQualityTestOrder",method =RequestMethod.POST)@ResponseBody@ApiOperation(value="生成单件质检单", notes="上位机扫码,生成单件质检单")@ApiImplicitParam(name = "trayCode", value = "托盘编码", required = true, dataType = "String")public  Json generatingSingleJianQualityTestOrder(String trayCode) {return this.wmsMasterCleanFinishService.generatingSingleJianQualityTestOrder(trayCode);}

访问在线API

启动SpringBoot项目,在浏览器中输入:

http://localhost:8080/swagger-ui.html

注意将项目端口号8080改成自己项目的端口号。


http://www.ppmy.cn/embedded/128605.html

相关文章

小红的行列式构造

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 小红希望你构造一个3阶行列式&#xff0c;满足每个元素的绝对值不小于1&#xff0c;且行列式的值等于xxx。你能帮帮她吗&#xff1f; 输入描述: 一个整数xxx −100≤x≤100 输出描…

王爽汇编语言第三版实验1

前言 本系列的文章是对王爽老师的汇编语言中的实验的解答记录&#xff0c;原书一共有17个实验&#xff0c;由于学校的教学流程只做到了第14个实验&#xff0c;因此本文章只会有前十四个实验的解答记录,还有个比较重要的是&#xff0c;文章中会有原书实验中没有的题目&#xff…

atcoder abc375

A seats 代码&#xff1a; #include <bits/stdc.h> using namespace std;int main() {int n;cin >> n;vector<char> a(n 1);for(int i 1; i < n; i ) cin >> a[i];int cnt 0;for(int i 1; i < n - 2; i ) {if(a[i] # && a[i 1…

【Qt】窗口关闭提示框

在关闭QWdiget窗口时弹出提示框 重写**closeEvent**函数 void closeEvent(QCloseEvent* event) override;QMessageBox *msgBox new QMessageBox(QMessageBox::Question, "信息提示", "是否保存当前数据&#xff1f;", QMessageBox::Save | QMessageBox::N…

SAP_FI_学习树状图

SAP FI学习 │ ├── SAP FI基础知识 │ ├── SAP FI概述 │ ├── 财务会计的基本概念 │ └── SAP FI的主要功能 │ ├── 核心组件 │ ├── 会计凭证处理 │ │ ├── 凭证类型 │ │ ├── 借贷记账 │ │ └── 凭证审核流程 │ ├──…

健康生活,注重睡眠

在这个快节奏的时代&#xff0c;养生保健成为了我们不可忽视的生活课题。其中&#xff0c;睡眠作为恢复体力、巩固记忆、调节情绪的关键环节&#xff0c;其重要性往往被繁忙的生活所掩盖。今天&#xff0c;让我们深入探讨一个话题&#xff1a;为何注重睡眠是养生保健的核心要素…

opencv学习:使用OpenCV进行图像中四边形区域的透视变换和答案评分完整代码实现

简介 使用OpenCV进行实时视频流中的四边形区域抠图主要涉及到图像处理和计算机视觉中的几个关键概念&#xff1a;轮廓检测、多边形近似、透视变换和图像掩码。这个算法的目标是从视频流中实时检测出四边形区域&#xff0c;并将该区域从背景中分离出来&#xff0c;以便进行进一步…

C语言入门笔记:1.1 搭建开发环境

文章目录 一、C51与C251的区别二、安装Keil MDK三、C语言&#xff1a;菜鸟教程 一、C51与C251的区别 <1> 指令集数量不一样&#xff0c;C251有268条指令&#xff0c;C51有111条指令&#xff0c;前者可向下兼容后者的指令集&#xff0c;即Binary模式。 <2> 从指令种…