当进行开发时参数过多,后端不易使用pastman,apipost 等工具进行测试调试,可以使用swagger
swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RestFul风格的web服务,总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器断的代码,允许API来始终保持同步。
作用:
1. 接口的文档在线自动生成。
2. 功能测试。
使用
1.导入maven坐标
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
2.添加配置类
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket2() {
log.info("生成接口文档");
ApiInfo apiInfo = new ApiInfoBuilder()
.title("surora项目接口文档")
.version("2.0")
.description("aurora项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName("用户端接口")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller.user"))
.paths(PathSelectors.any())
.build();
return docket;
}
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始设置静态资源映射");
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
其中需要创建一个 ApiInfoBuilder并且设置他的标题版本描述等,再设置Docket将ApiInfoBuilder传入并且设置需要扫描哪个包下的controller。
最后设置静态资源映射,设置生成的html放哪个位置,使其能成功访问。
最终访问8080/doc.html。
注意再controller中需要添加注解
@Api(tags =“员工相关接口”) 添加在controller类上
@ApiOperation( "员工登录") 添加在方法上
@ApiModel(description = “员工登录传递的相关模型”) 添加在pojo上
@ApiModelProperty("密码") 添加在pojo中的属性