noN*_*ngo 4 java swagger springfox
我的依赖....
<!-- SPRING BOOT -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当我尝试在 swagger 中使用两个软件包库时,我的问题发生了。下面你可以看到我对包基础的意思,上面你可以看到我的依赖关系。我尝试使用两个软件包基础的代码如下。
aPackageBase: com.companyx
bPackageBase: br.com.companyz
Run Code Online (Sandbox Code Playgroud)
aPackageBase和bPackageBase。...
String aPackageBase = "com.companyx";
String bPackageBase = "br.com.companyz";
Docket docket = new Docket(DocumentationType.OAS_30).select() //
.apis(RequestHandlerSelectors.basePackage(aPackageBase) //
.and(RequestHandlerSelectors.basePackage(bPackageBase))) // That doesn't work :(....
.paths(PathSelectors.any()).build()
...
Run Code Online (Sandbox Code Playgroud)
我只想使用两个包 base。我不想在运行时更改它,当然我可以在运行时更改它并仅使用它one packageBase,但我厌倦了为每个 API 更改它。如果我能拥有它aPackageBase,bPackageBase它将拯救我的生命。哈哈哈。
注意:我认为我不需要展示更多有关我的 SwaggerConfiguration 的信息,因为我的问题仅在于该部分。
您需要Docket稍微更改一下 bean 定义。
Docket docket = new Docket(DocumentationType.OAS_30)
.select() //
.apis(RequestHandlerSelectors.basePackage(aPackageBase) //
.or(RequestHandlerSelectors.basePackage(bPackageBase))) // use or here, not and
.paths(PathSelectors.any())
.build();
Run Code Online (Sandbox Code Playgroud)
RequestHandlerSelectors.basePackage(...)返回一个java.util.function.Predicate对象。
Predicate#and要求两个条件都为真,但事实并非如此,因为任何 API 都只存在于其中一个包中。因此Predicate#or。
| 归档时间: |
|
| 查看次数: |
4373 次 |
| 最近记录: |