首页 > 其他分享 >swagger学习

swagger学习

时间:2024-11-25 11:34:32浏览次数:10  
标签:接口 public 学习 文档 swagger class 属性

swagger 支持基于 API 自动生成接口文档,接口文档始终与 API 保持同步,

一、引入依赖:

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

二、启动类

添加注解@EnableSwagger2;添加此注解后表示对当前项目中全部控制器进行扫描

@EnableSwagger2
@SpringBootApplication(scanBasePackages = {"", ""})
public class TestApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
        System.out.println("  ======= 启动成功 =======  ");
    }
}

三、添加swagger配置

@Configuration
public class SwaggerConfig {

	@Bean
	public Docket getDocket() {
		return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(swaggerApiInfo()) // 增加API相关信息
				.groupName("测试系统") //如果配置多个文档的时候,需要配置groupName来分组
                .select() //select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
			    .apis(RequestHandlerSelectors.basePackage("com.controller")) //指定扫描哪个包下的接口
                .host("") //指定访问swaggerUI界面的地址
				.build();
	}


	private ApiInfo swaggerApiInfo() {
		return new ApiInfoBuilder()
				// 联系人信息 name url email
				.contact(new Contact("", "", ""))
				// 文档标题
				.title("Swagger 的标题")
				// 文档描述
				.description("Swagger 的描述")
				// 文档版本
				.version("3.0.0")
                .build();
	}

}

四、Controller层

@Api

该注解将一个Controller(Class)标注为一个swagger资源(API)。在默认情况下,Swagger-Core只会扫描解析具有@Api注解的类;该注解的属性有:

tags :分组的标签;具有相同标签的API将会被归并在一组内展示

value:是类的说明,可以使用tags替代        

@ApiOperation

在指定的(路由)路径上,表示一个http请求的操作。具有相同路径的不同操作会被归组为同一个操作对象。

notes:接口的描述

value:可以当作是接口的简称

tags:可以重新分组

例如;

@RestController
@RequestMapping("/test")
@Api(tags = "测试接口")
public class TestController {
    @ApiOperation("查询接口")
    @GetMapping("/query")
    public void TestList(TestListDto testListDto) {

    }
}

五、输入、输出:

@ApiModel

修饰对象类,表示对对象类进行说明,用于参数用实体类接收的场景

value:表示对象名,可省略

description:描述,可省略

@ApiModelProperty

用来描述一个model的属性;表示这个属性是一个Swagger模型的属性。主要的属性值有:

value 属性简短描述;默认属性

name 重写属性的名字

example 属性的示例值

required 指定属性是否为必须值

例如:

@Data
@ApiModel
public class ResponseVo {

    @ApiModelProperty(name = "名字")
    private String name;
}

六、访问UI页面

进入http://ip:port/swagger-ui.html

在页面中可以通过可视化的进行操作项目中所有接口

七、注意

如果使用swagger访问接口,传入参数为空时

可以试试

@RestController
@RequestMapping("/test")
@Api(tags = "测试接口")
public class TestController {
    //显示的指定参数名
    @ApiOperation("查询接口")
    @GetMapping("/query")
    public void TestList(@RequestParam("paramName") String username) {

    }

    //或者换成post请求
    @ApiOperation("查询接口")
    @PostMapping("/query")
    public void TestList(@RequestBody TestListDto testListDto) {

    }
}

@RequestParam(required = false)

设置为非必传。因为required值默认是true,默认必传

@RequestParam("workID")或者@RequestParam(value = "workID")

可以指定参数名

标签:接口,public,学习,文档,swagger,class,属性
From: https://blog.csdn.net/qq_56650001/article/details/143891289

相关文章

  • sql学习~
    一.mysql数据模型二.sql简介三、mysql通用语法1.注释单行注释。--内容(注意空格)多行注释。/*内容*/2.不区分大小写3.分号结尾。四、sql分类1.DDL1>进入mysqlmysql-uroot-p+密码2>操作数据库查询数据库showdatabases;创建数据库createdatabase数据库名称......
  • .Net-Avalonia学习笔记(十一)-安卓APP设置横屏
    在Avalonia中设置安卓应用为横屏模式,以下是一般的步骤:安卓项目配置文件修改在安卓项目中,需要修改AndroidManifest.xml文件。这个文件位于安卓项目的Properties文件夹下。找到<activity>标签,在其中添加android:screenOrientation="landscape"属性。例如:<activityand......
  • 【深度学习】铁路轨道缺陷检测
    一、概述铁路轨道在生产、热处理、机械加工等过程中,可能会出现凹陷、未熔合、气孔、裂纹等缺陷影响其性能和寿命,如其不良品流入市场,铁路运输安全将无法得到保障。二、传统算法检测缺点传统算法依赖于手动选择特征,当图像一致性较差的时候需要人工反复调整参数适应检测,在......
  • 【WPF】入门学习
     一、学习资源: WPF中文网:https://www.wpfsoft.com/ VisualStudio2022:https://visualstudio.microsoft.com/zh-hans/vs/ VS2022 激活密钥:https://www.cnblogs.com/soarowl/p/18200602学习参照教程:https://www.bilibili.com/video/BV1mJ411F7zG二、VS2022激活:【帮助】......
  • 深度学习——Transformer
    本文详细介绍面试过程中可能遇到的Transformer知识点。文章目录初识Transformer1.编码器-解码器架构解码器的额外结构2.自注意力机制(Self-AttentionMechanism)解码器中的注意力机制的2点特殊3.位置编码(PositionalEncoding)4.前馈神经网络(Feed-ForwardNeural......
  • 鸿蒙学习统一上架与多端分发-快速上架(1)
    文章目录1快速上架1.1证书颁发1.2统一上架1.3上架审核HUAWEIAppGalleryConnect为开发者提供全球化、全场景一站式应用分发能力,并为开发者提供质量、安全、工程管理等领域的能力,大幅降低应用开发与运维难度,提升版本质量,帮助开发者获得用户并实现收......
  • 从零开始学习黑客技术,看这一篇就够了
    ......
  • 从零开始学习黑客技术,看这一篇就够了
    ......
  • # 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第10周学习总结
    学期(如2024-2025-1)学号(如:20241402)《计算机基础与程序设计》第10周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上......
  • 学习笔记(四十五):状态管理@Watch装饰器
    概述@Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变,可以使用@Watch为状态变量设置回调函数。观察变化和行为表现当观察到状态变量的变化(包括双向绑定的AppStorage和LocalStorage中对应的key发生的变化)的时候,对应的@Watch的回调方法将被触发;......