记录我的Swagger学习与使用
程序员文章站
2022-07-07 13:38:30
...
Swagger的学习
Swagger是一款 前端和后端交互的接口文档框架,你只需要按照他的规范去定义接口及接口相关的信息,
其可以生成一个html页面,供我们查看接口信息。
1.引入依赖
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2.编写SwaggerConfig类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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 //开启swagger功能
public class SwaggerConfig {
@Bean
public Docket docket(){
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("刘哈哈")
.select()
/*
*RequestHandlerSelectors 配置要扫描接口的方式
* any 扫描全部
* none 不扫描
* withMethodAnnotation 扫描方法上的注解
* withClassAnnotation 扫描类上的注解
* basePackage 指定要扫描的包
* */
.apis(RequestHandlerSelectors.basePackage("com.liu.exam.controller"))
//过滤什么路径
//.paths(PathSelectors.ant("/user/**"))
.build();
return docket;
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("雷霆嘎巴");
}
private ApiInfo apiInfo(){
return new ApiInfo(
"刘哈哈的SwaggerApi文档",
"要得到你想要的某样东西,最好的办法是让你自己配得上它",
"1.0",
"https://www.csdn.net/",
new Contact("刘哈哈", "", "aaa@qq.com"), //作者信息
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
3.swagger中使用注解
@ApiOperation("") 加在请求方法上,描述请求方法,会在swagger页面中显示
@ApiParam("") 加在请求参数上,描述参数信息
只要我们的返回值中存在User对象,那么这个实体类就会被加到swagger中,会在swagger页面中显示
@PostMapping("/save")
@ResponseBody
@ApiOperation("保存用户")
public User save( @ApiParam("年龄") Integer age,@ApiParam("姓名")String name){
//只要我们的返回值中存在User对象,那么这个实体类就会被加到swagger中
return userService.save(new User(age,name));
}
@ApiModel("") 加在实体类上,描述实体类信息
@ApiModelProperty("") 加载实体类的属性字段上,描述字段信息
@Entity
@Table(name = "t_shanxi")
@ApiModel("用户实体类")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("姓名")
private String name;
}
在浏览器访问 : http://localhost:8080/swagger-ui.html
上一篇: jmeter的使用
下一篇: jMeter的基本使用
推荐阅读
-
archLinux 学习笔记--mlocate的安装与使用
-
Hadoop学习(9)-spark的安装与简单使用
-
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
-
Vue.js学习记录之在元素与template中使用v-if指令实例
-
荐 20200713linux学习03-vi与vim的使用和关机重启指令
-
(Java)记录我的Java学习过程
-
Python学习笔记——主要函数及基本使用(与C的对比)
-
Vue学习之动画钩子,Vuex的使用与购物车的展示实例
-
浅谈springfox-swagger原理解析与使用过程中遇到的坑
-
asp.net core 3.0中使用swagger的方法与问题