赞
踩
作为一名后端,我经常需要去测试我编写的接口,常用的有postman,idea插件RestfulTool,以及这篇文章介绍的Swagger文档。
Swagger文档不仅可以用来测试,在我看来,它是我们后端与前端的沟通桥梁,能规范我们的接口操作说明,提高前后端分离程度。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket docket(){ return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("CZF的swagger文档") .description("这是swagger的一个测试例子") .contact(new Contact("czf",null,"123@qq.com")) //联系人信息 .version("V9.99") .build(); } }
apiInfo()的展示
@Bean public Docket docket(){ return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()) .enable(swaggerProperties.getEnable()) // 定义是否开启swagger,false为关闭,可以通过变量控制 .apiInfo(apiInfo()) // 将api的元信息设置为包含在json ResourceListing响应中。 .host(swaggerProperties.getTryHost()) // 接口调试地址 .select() //通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口 .apis(RequestHandlerSelectors.basePackage("com.czf.swagger.controller")) /* RequestHandlerSelectors.any() 扫描所有,项目中的所有接口都会被扫描到 RequestHandlerSelectors.none() 不扫描接口 withMethodAnnotation(final Class<? extends Annotation> annotation) 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求 withClassAnnotation(final Class<? extends Annotation> annotation) 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口 basePackage(final String basePackage) // 根据包路径扫描接口 */ .paths(PathSelectors.ant("/test/**")) //配置如何通过path过滤,即这里只扫描请求以/test开头的接口 /* any() // 任何请求都扫描 none() // 任何请求都不扫描 regex(final String pathRegex) // 通过正则表达式控制 ant(final String antPattern) // 通过ant()控制 */ .build(); }
1、如果没有配置分组,默认是default。通过groupName()方法即可配置分组:
.groupName("模块一")
配置多个分组
@Bean
public Docket docket1(){
return new Docket(DocumentationType.OAS_30).groupName("group1");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.OAS_30).groupName("group2");
}
@Bean
public Docket docket3(){
return new Docket(DocumentationType.OAS_30).groupName("group3");
}
1、在启动类上添加注解
@EnableOpenApi
2、在JavaBean实体类上添加注解
注解 | 说明 |
---|---|
@ApiModel | 用在JavaBean类上,说明JavaBean的 用途 |
@ApiModelProperty | 用在JavaBean类的属性上面,说明此属性的的含议 |
3、在Controller接口类上添加注解
@Api
放在请求的类上,与 @Controller并列,说明类的作用,如用户模块,订单类等。
tags="说明该类的作用"
4、在接口类方法上添加注解
@ApiOperation:"用在请求的方法上,说明方法的作用" value="说明方法的作用" notes="方法的备注说明"
@ApiImplicitParams:用在请求的方法上,包含一组参数说明
@ApiImplicitParam:对单个参数的说明
name:参数名
value:参数的说明、描述
required:参数是否必须必填
paramType:参数放在哪个地方
· query --> 请求参数的获取:@RequestParam
· header --> 请求参数的获取:@RequestHeader
· path(用于restful接口)--> 请求参数的获取:@PathVariable
· body(请求体)--> @RequestBody User user
· form(普通表单提交)
dataType:参数类型,默认String,其它值dataType="Integer"
defaultValue:参数的默认值
5、访问swagger页面
http://localhost:8080/swagger-ui/index.html
Swagger注解说明
https://blog.csdn.net/xiaojin21cen/article/details/78654652
Swagger 3.0配置整合使用教程
https://blog.csdn.net/weixin_44203158/article/details/109137799
原生态的Swagger文档界面比较普通,我们可以通过引入依赖,使得我们的Swagger界面变得简洁好看易用起来。
有两种风格的界面可供我们选择,分别是:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.6</version>
</dependency>
访问接口都是:http://localhost:8080/doc.html(在ip端口后面加上doc.html)
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。