您面临的问题是由于您使用了 1 级参考文献而引起的paths-to-match
这导致 Springdoc 过滤可用的端点only在指定的路径上。
springdoc.paths-to-match=/api/v1,/v2,/v3,/status
上述属性与端点进行匹配开始和结束 with /v2
, /v3
, /status
, /api/v1
。这无法匹配可能具有以下形式的端点/users/v2/
甚至/v2/users
etc.
虽然不支持完整的正则表达式来指定您想要包含的端点,但有基本支持**
这可以帮助您指定要包含/排除的级别。
考虑下面的例子
springdoc.paths-to-match=/**/v1/**/
它将包括具有以下特征的任何端点/v1/
在里面。例子如/users/v1/
, /v1/dasboard
并且/user/v1/dashboard
.
springdoc.paths-to-match=/v2/**
它将仅匹配以以下开头的端点/v2
并深入 n 层。例子如/v2/dashboard
将被包括在内,但是/users/v2/something
将被排除在外。
springdoc.paths-to-match=/**/v1
它只会匹配以以下结尾的路径/v1
。例子如/users/v1
将被匹配,而那些喜欢/v1/user
将不会被匹配。
或者,您也可以更新您的Bean
做同样的事情。但请注意,属性文件优先于 bean 配置。
// you existing bean here
// Define an API group that'll include specific version. Can be helpful in versioning the APIs.
@Bean
public GroupedOpenApi hideApis() {
return GroupedOpenApi.builder().group("default")
.pathsToExclude("/api/v2/**", "/v2/**", "/**/v3/**")
.pathsToMatch("/v1/**", "/api/v1/**")
.build();
}