问题:使用knife4j-openapi2整合springboot项目,可以自动生成对应的接口文档。
<!-- https://doc.xiaominfo.com/docs/quick-start#openapi2 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
使用的springboot 版本为
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
出现的情况:
只有基础页面,对应controller层的所有信息都没有,这很明显是没有扫描到controller层,但是我已经配置了 (按照官方文档配置,如下)
knife4j:
enable: true
openapi:
title: "接口文档"
version: 1.0
group:
default:
api-rule: package
api-rule-resources:
- com.ms.msSearch.controller
解决:
1.首先网上有很多使用knife4j-openapi3整合springboot,他们大多数遇到这种问题都是因为springboot的版本匹配不上,因为knife4j-openapi3只支持springboot3.x(3.3.3)
但是和我们的这个情况不匹配
2.经过一段时间寻找,我尝试重新配置扫描controller 的yaml配置,发现了端倪
正确的配置应该如下所示
knife4j:
enable: true
openapi:
title: "MS-接口文档"
version: 1.0
group:
default:
apiRule: package
apiRuleResources:
- com.ms.msSearch.controller
是apiRule和apiRuleResources,而不是用连词线-连接起来的,这可能是官方文档的一个小问题
总之,这样修改之后,就可以正常看到controller层对应的接口文档了