3、swagger调试
Swagger:
1、将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档;
2、当接口更新之后,只需要修改代码中的Swagger描述就可以实时生成新的接口文档了,从而规避了接口文档老旧不能使用的问题;
3、通过Swagger页面,可以直接进行接口调用,降低了项目开发阶段的调试成本(在线测试)
Swagger配置:
1、添加swagger相关依赖:
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
2、Swagger的configuration配置:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
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;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList; @Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean //配置docket以配置Swagger具体参数
public Docket docket(Environment environment) { //动态配置项目所属什么环境时来显示swagger
// 设置要显示swagger的环境
// Profiles of = Profiles.of("dev", "test"); // 判断当前是否处于该环境
// 通过enable()方法接收此参数判断是否要显示
// boolean flag = environment.acceptsProfiles(of); return new Docket(DocumentationType.SWAGGER_2)
//配置文档页面信息
.apiInfo(apiInfo()) //动态配置是否启用Swagger,如果是false,在浏览器将无法访问
// .enable(flag) //配置分组
//配置多个分组只需要配置多个docket即可,不同docket有不同组名
.groupName("组名") //构建Docket时通过select()方法扫描接口
.select() //RequestHandlerSelectors:配置要扫描接口的方式
//1、扫描所有,项目中的所有接口都会被扫描到:any()
//2、不扫描接口:none()
//3、扫描方法上的注解:withMethodAnnotation(),
// 如withMethodAnnotation(GetMapping.class)只扫描get请求
//4、扫描类上的注解,参数是一个反射对象:withClassAnnotation(),
// 如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
//5、指定要扫描的包路径:basePackage(final String basePackage)
//例:.apis(RequestHandlerSelectors.basePackage("com.swagger.controller"))
.apis(RequestHandlerSelectors.basePackage("控制类所在包名")) //配置如何通过path过滤,即这里只扫描请求以/controller开头的接口
//1、任何请求都扫描:any()
//2、任何请求都不扫描:none()
//3、通过正则表达式控制:regex(final String pathRegex)
//4、通过ant()控制:ant(final String antPattern)
//例:.paths(PathSelectors.ant("/controller/**"))
.paths(PathSelectors.ant("控制类中@RequestMapping中的路径"))
.build();
} //配置文档信息
private ApiInfo apiInfo() {
Contact contact = new Contact("联系人名字", "http://xxx.xxx.com/联系人访问链接", "联系人邮箱");
return new ApiInfo(
"Swagger的学习笔记", // 标题
"如何配置Swagger", // 描述
"v1.0", // 版本
"http://terms.service.url/组织链接", // 组织链接
contact, // 联系人信息
"Apach 2.0 许可", // 许可
"许可链接", // 许可连接
new ArrayList<>()// 扩展
);
} //配置分组一
@Bean
public Docket docket1() {
return new Docket(DocumentationType.SWAGGER_2).groupName("group1");
} //配置分组二
@Bean
public Docket docket2() {
return new Docket(DocumentationType.SWAGGER_2).groupName("group2");
}
}
3、测试访问:
http://localhost:8080/swagger-ui.html
Swagger常用注解:
1、@Api详解:
用于标注一个Controller
|
属性 |
描述 |
|
value |
url的路径值 |
|
tags |
如果设置这个值、value的值会被覆盖 |
|
description |
对api资源的描述 |
|
basePath |
基本路径可以不配置 |
|
position |
如果配置多个Api 想改变显示的顺序位置 |
|
produces |
For example, "application/json, application/xml" |
|
consumes |
For example, "application/json, application/xml" |
|
protocols |
Possible values: http, https, ws, wss. |
|
authorizations |
高级特性认证时配置 |
|
hidden |
配置为true 将在文档中隐藏 |

2、@ApiOperation详解:
用于对一个操作或HTTP方法进行描述
|
属性 |
描述 |
|
value |
url的路径值 |
|
tags |
如果设置这个值、value的值会被覆盖 |
|
description |
对api资源的描述 |
|
basePath |
基本路径可以不配置 |
|
position |
如果配置多个Api 想改变显示的顺序位置 |
|
produces |
For example, "application/json, application/xml" |
|
consumes |
For example, "application/json, application/xml" |
|
protocols |
Possible values: http, https, ws, wss. |
|
authorizations |
高级特性认证时配置 |
|
hidden |
配置为true 将在文档中隐藏 |
|
response |
返回的对象 |
|
responseContainer |
这些对象是有效的 "List", "Set" or "Map".,其他无效 |
|
httpMethod |
"GET","HEAD","POST","PUT","DELETE","OPTIONS"and"PATCH" |
|
code |
http的状态码 默认 200 |
|
extensions |
扩展属性 |
3、@ApiParam详解:
用于请求方法中,定义api参数的注解
|
属性 |
描述 |
|
name |
属性名称 |
|
value |
属性值 |
|
defaultValue |
默认属性值 |
|
allowableValues |
可以不配置 |
|
required |
是否属性必填 |
|
access |
不过多描述 |
|
allowMultiple |
默认为false |
|
hidden |
隐藏该属性 |
|
example |
举例子 |

4、@ApiImplicitParams、@ApiImplicitParam详解:
(1)、@ApiImplicitParams:用在请求的方法上,包含一组参数说明
(2)、@ApiImplicitParam:对单个参数的说明
|
属性 |
描述 |
|
name |
参数名 |
|
value |
参数的说明、描述 |
|
required |
参数是否必须必填 |
|
paramType |
参数放在哪个地方 query --> 请求参数的获取:@RequestParam header --> 请求参数的获取:@RequestHeader path(用于restful接口)--> 请求参数的获取:@PathVariable body(请求体)--> @RequestBody User user form(普通表单提交) |
|
dataType |
参数类型,默认String,其它值dataType="Integer" |
|
defaultValue |
参数的默认值 |
5、@ApiModel、@ApiModelProperty详解:
(1)、@ApiModel:用于描述一个Model的信息
(2)、@ApiModelProperty:用来描述一个Model的属性。

3、swagger调试的更多相关文章
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 既然前后端 ...
- C#------如何使用Swagger调试接口
1.打开NuGet程序包 2.安装下面两个程序包 3.安装完后会出现SwaggerConfig.cs类,并修改里面的内容 代码: [assembly: PreApplicationStartMetho ...
- Asp.Net Boilerplate Project 使用swagger调试api
文件有点大,去掉了packages文件夹,(Swashbuckle.Core.5.6.0) 链接:https://pan.baidu.com/s/1DzMLhFyRav0dufS4dTeMzg 提取码 ...
- .net core webapi 配置swagger调试界面
一.创建一个.net core webapi的项目: 二.在nuget程序包管理器控制台输入 Install-Package Swashbuckle -version 6.0.0-beta902 ...
- .net core 添加 Swagger
1.新建一个Core项目 添加nuget包:Swashbuckle.AspNetCore 添加Startup文件: 先引用: using Swashbuckle.AspNetCore.Swagger; ...
- ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
以下为教程: 在现有webapi项目中,nuget安装以下两个插件 swagger.net.ui swashbuckle 安装完毕后可以卸载Swagger.NET,此处不需要! 安装完毕后屏蔽以下代码 ...
- Swagger在 NETcore 中的使用
请参考 https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=asp ...
- .Net WebApi接口之Swagger集成详解
本文详细的介绍了.net从一个新的项目中创建api后集成swagger调试接口的流程! 1.首先我们创建一个MVC项目(VS2012): 2.然后在项目中的Controllers文件夹中添加API接口 ...
随机推荐
- NOIP2003 普及组 洛谷P1045 麦森数 (快速幂+高精度)
有两个问题:求位数和求后500位的数. 求位数:最后减去1对答案的位数是不影响的,就是求2p的位数,直接有公式log10(2)*p+1; 求后500位的数:容易想到快速幂和高精度: 1 #includ ...
- 不妨试试更快更小更灵活Java开发框架Solon
@ 目录 概述 定义 性能 架构 实战 Solon Web示例 Solon Mybatis-Plus示例 Solon WebSocket示例 Solon Remoting RPC示例 Solon Cl ...
- 六、模型层(ORM)
六.模型层(ORM) Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库操作,而是通过定义模型类,操作模型类来完成对数据库中表的增删改查和创建等操作. O是object,也就类对象的意 ...
- C# 8.0 添加和增强的功能【基础篇】
.NET Core 3.x和.NET Standard 2.1支持C# 8.0. 一.Readonly 成员 可将 readonly 修饰符应用于结构的成员,来限制成员为不可修改状态.这比在C# 7. ...
- 检测轮廓 获取其最值的坐标 opencv-python
一.基础知识 图像清晰度评价算法有多种 空域中,主要考察图像的邻域对比度,即相邻像素间灰度特征的 梯度差: 频域中,主要考察图像的频率分量,清晰的图像高频分量多,模糊的图像低频分量多. 灰度值 把白色 ...
- Day10:for循环结构的使用详解
for循环 将0~100内的奇.偶数分别求和 思路 第一步先将0~100以内的奇.偶数分成两队,第二步使奇数累加.ou'shu public class ForCirculate{ public st ...
- SCI简介和写作顺序
一.SCI论文组成部分简介 一篇完整的 sci 论文主要包括以下几个主要的组成部分,从前往后依次分别是 Title 就是说这个文章的标题其次是 Abstract 也就是这个文章的摘要.接下来是 Int ...
- 【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法
本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程.通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式 ...
- Halocn双目相机标定
[Halcon]Halcon双目标定 相机标定(4)---基于halcon的双目立体视觉标定 双目立体视觉:四(双目标定matlab,图像校正,图像匹配,计算视差,disparity详解,) 双目测距 ...
- hwlog---api.go
// Copyright(c) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package hwlog provides the ...