介绍:使用Swagger你只需要按照它的规范去定义接口及接口相关信息,就可以做到生成接口文档,以及在线接口调试页面。
Knife4j是为Java MVC框架继集成Swagger生成Api文档的增强解决方案。
使用方式:
1.导入knife4j的maven坐标
<dependency>
<groupId>com.github.xiaoming</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
2.在配置类中加入knife4j相关配置
/** * 通过knife4j生成接口文档 * @return */ @Bean public Docket docket() { log.info("准备生成接口文档……"); ApiInfo apiInfo = new ApiInfoBuilder() .title("xxxx项目接口文档")//标题 .version("2.0")//版本 .description("xxxx项目接口文档")//简介 .build(); Docket docket = new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo) .select() //指定生成接口需要扫描的包 .apis(RequestHandlerSelectors.basePackage("com.sky.controller")) .paths(PathSelectors.any()) .build(); return docket; }
3.设置静态资源映射,否则接口文档页面无法访问
/** * 设置静态资源映射 * @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/"); }
访问接口文档路径:localhost:8080/doc.html
进行测试:
常用注解:
通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性。
@Api:用在类上,例如Controller,表示对类的说明
@ApiModel:用在类上,例如entity、DTO、VO
@ApiModelProperty:用在属性上,描述属性信息
@ApiOperation:用在方法上,例如Controller的方法,说明方法的用途、作用