本篇内容主要讲解“SpringBoot Knife4j在线API文档框架怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot Knife4j在线API文档框架怎么使用”吧!
1.Knife4j在线API文档基本使用
Knife4j是一款基于Swagger 2的在线API文档框架。
使用Knife4j的基础步骤:
添加依赖
在
application.properties
/application.yml
中添加配置在项目中添加配置类
关于依赖项:
<!-- Knife4j Spring Boot:在线API --><dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.9</version></dependency>
注意:以上依赖项的版本是2.0.9
,适用于Spring Boot 2.6以下(不含2.6)版本。
关于配置文件中的配置,主要是开启此框架的增强模式(Knife4j定义的概念),需要添加:
knife4j.enable=true
关于配置类:
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;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.EnableSwagger2WebMvc;@Slf4j@Configuration@EnableSwagger2WebMvcpublic class Knife4jConfiguration { private String basePackage = "cn.tedu.csmall.product.controller"; private String groupName = "product"; private String host = "http://java.tedu.cn"; private String title = "商城在线API文档--商品管理"; private String description = "商城在线API文档--商品管理"; private String termsOfServiceUrl = "http://www.apache.org/licenses/LICENSE-2.0"; private String contactName = "Java教学研发部"; private String contactUrl = "http://java.tedu.cn"; private String contactEmail = "java@tedu.cn"; private String version = "1.0.0"; @Autowired private OpenApiExtensionResolver openApiExtensionResolver; public Knife4jConfiguration() { log.debug("创建配置类对象:Knife4jConfiguration"); } @Bean public Docket docket() { String groupName = "1.0.0"; Docket docket = new Docket(DocumentationType.SWAGGER_2) .host(host) .apiInfo(apiInfo()) .groupName(groupName) .select() .apis(RequestHandlerSelectors.basePackage(basePackage)) .paths(PathSelectors.any()) .build() .extensions(openApiExtensionResolver.buildExtensions(groupName)); return docket; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title(title) .description(description) .termsOfServiceUrl(termsOfServiceUrl) .contact(new Contact(contactName, contactUrl, contactEmail)) .version(version) .build(); }}
注意:务必检查以上配置类中的basePackage
属性的值,必须是当前项目中控制器类所在的包!
在项目中已经完成以上步骤后,启动项目,打开浏览器,通过http://localhost:8080/doc.html即可访问在线API文档。
2.配置API文档信息
@Api
:添加在控制器类上
此注解的
tags
属性,可配置模块名称,可以在模块名称中使用编号,例如:01. 品牌管理模块,最终将按照编号升序排列
@ApiOperation
:添加在控制器类中处理请求的方法上
此注解的
value
属性,可配置业务名称
@ApiOperationSupport
:添加在控制器类中处理请求的方法上
此注解的
order
属性(int
类型),可配置业务的排序序号,最终将升序排列
@ApiModelProperty
:添加在POJO类型的属性上
此注解的
value
属性,可配置参数名称(说明)此注解的
required
属性,可配置是否必须提交此参数此注解的
example
属性,可配置此请求参数的示例值
@ApiImplicitParam
:添加在控制器类中处理请求的方法上,用于对未封装的请求参数添加说明(例如Long id
参数)
必须配置此注解的
name
属性,取值为方法的参数名称,表示当前注解对哪个参数进行说明此注解的
value
属性,可配置参数名称(说明)此注解的
required
属性,可配置是否必须提交此参数此注解的
dataType
属性,可配置参数的数据类型(例如取值为"long"
)此注解的
example
属性,可配置此请求参数的示例值
@ApiImplicitParams
:添加在控制器类中处理请求的方法上,此注解的value
属性是@ApiImplicitParam
注解的数组类型,当需要使用@ApiImplicitParam
对多个未封装参数进行说明时,需要将多个@ApiImplicitParam
注解的配置作为当前注解的参数
@ApiOperation("删除类别")@ApiOperationSupport(order = 200)@ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "类别ID", required = true, dataType = "long"), @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "long")})@PostMapping("/delete")public void delete(Long userId, Long id) {}
到此,相信大家对“SpringBoot Knife4j在线API文档框架怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!