前言
需要使用knife4j
这个框架来实现我们的需求, 这里我使用的是Gradle
构建环境, 具体步骤如下
实现步骤
添加依赖
1
implementation "com.github.xiaoymin:knife4j-spring-boot-starter:2.0.9"
定义配置类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
open class SwaggerConfiguration : WebMvcConfigurer{
override fun addResourceHandlers(registry: ResourceHandlerRegistry?) {}
// 创建Docket存入容器,Docket代表一个接口文档
open fun webApiConfig(): Docket? {
return Docket(DocumentationType.SWAGGER_2) // 创建接口文档的具体信息
.apiInfo(webApiInfo()) // 创建选择器,控制哪些接口被加入文档
.select() // 指定@ApiOperation标注的接口被加入文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation::class.java))
.build()
}
// 创建接口文档的具体信息,会显示在接口文档页面中
private fun webApiInfo(): ApiInfo? {
return ApiInfoBuilder() //
.title("文档标题") //
.description("文档描述")
.version("1.0")// 版本
.contact(Contact("联系人信息", "http://baidu.com", "baidu@qq.com")) // 版权
.license("版权地址")
.licenseUrl("http://www.baidu.com")
.build()
}
}给
Controller
添加文档注解1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class FileController {
lateinit var service: FileService
fun uploadFile(
MultipartFile, file:
): BaseEntity<String> {
return try {
val url = service.uploadFile(file)
BaseEntity(data = url)
} catch (e: Exception) {
BaseEntity(code = 505, msg = e.message.orEmpty(), data = "")
}
}
}在application.yml
配置文件中对knife4j
进行相关配置1
2
3
4
5
6
7knife4j:
enable: true #开启文档自动生成功能
production: false # 生产版本时 无权限访问
basic: # 设置访问密码
enable: false
username: abc
password: 123运行工程, 查看文档
浏览器输入
http://ip:端口/doc.html
查看自动生成的文档, 如下:
文档参考
官方文档: 点击进入
本文为作者原创转载时请注明出处 谢谢