概述
学习目标
- 了解Swagger的作用和概念
- 了解前后端分离
- 在SpringBoot中集成Swagger
前后端分离
Vue + SpringBoot
-
号称世界上最流行的Api框架
-
RestFull api文档在线自动生成工具 api文档与api定义同步更新
-
直接运行,可以在线测试API接口
-
支持多种语言
SpringBoot集成Swagger
-
新建springBoot项目
-
导入相关依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
-
编写hello工程
-
配置SwaggerConfig
@Configuration @EnableSwagger2 //开启swagger2 public class SwaggerConfig { }
访问地址:http://项目地址/swagger-ui.html
配置Swagger
@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {
//配置多个分组
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("第二个分组");
}
@Bean
public Docket docket(Environment environment){
//设置要显示的Swagger的Docker的Bean实例
Profiles profiles = Profiles.of("dev","test");
//通过environment.acceptsProfiles 判断是否在自己设定的环境
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag)//是否开启swagger
.groupName("我的第一个分组")//分组
.select()
//basePackage 指定要扫描的包
//any()扫描全部
//none()不扫描
//withClassAnnotation()扫描类上的注解
//withMethodAnnotation()扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage("com.etoak.swagger.controller"))
//过滤路径
//.paths(PathSelectors.ant("/etoak/**"))
.build();
}
//配置Swagger信息 apiInfo
private ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact("小明","http://www.baidu.com","15166372068@163.com");
return new ApiInfo(
"小明SwaggerApi文档", //API标题
"我是描述信息", //API描述信息
"第一版", //版本
"http://www.baidu.com", // 服务
contact, //作者信息
"Apache 2.0", //许可
"http://www.apache.org/licenses/LICENSE-2.0", //许可地址
new ArrayList());
}
}
实体类配置
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用户实体类")
public class User {
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty("密码")
private String passWord;
}
@RestController
public class HelloController {
//只要我们的接口中存在实体类 就会被扫描到Swagger中
@PostMapping("/user")
public User user(){
return new User();
}
}
可以在Modle中查看返回信息
接口测试
//ApiOperation 接口描述信息
@PostMapping("/hello2")
@ApiOperation("/Hello控制类")
public User hello(@ApiParam("用户名") User user){ //@ApiParam 请求参数
return user;
}
在测试页面点击try out测试
输入请求参数
返回信息