我有两个项目,一个是类似底盘的项目,有一些依赖项,spring-boot-starter-parent
作为父项目,一个带有 REST 端点的模块,第二个是带有第一个项目作为父项目,其中有运行 Spring Boot 应用程序的 main 方法。
我正在使用 Swagger 来记录此端点,但它没有显示父项目中的自定义端点。我只能看到一个端点是 BasicErrorController
/error
,它也来自父 Spring Boot 项目,我想以相同的方式显示我的端点。
我尝试将ExampleChassis注释为@Controller
(与BasicErrorController
中的相同),但它不起作用(代码如下)。主类有注释@EnableSwagger2
。
父项目pom.xml
:
<groupId>com.example</groupId>
<artifactId>chassis</artifactId>
<version>1.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<swagger2.version>2.9.2</swagger2.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<modules>
<module>rest</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
休息模块pom.xml
:
<parent>
<artifactId>chassis</artifactId>
<groupId>com.example</groupId>
<version>1.1-SNAPSHOT</version>
</parent>
<artifactId>rest</artifactId>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger2.version}</version>
</dependency>
</dependencies>
可运行的SpringBoot项目pom.xml
:
<artifactId>micro</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>com.example</groupId>
<artifactId>chassis</artifactId>
<version>1.1-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>rest</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
REST 端点:
@RestController
@RequestMapping("/example")
public class ExampleChassis {
@RequestMapping
public String getXing() {
return "example";
}
}
我希望在 SwaggerUI 和 .json
中看到 /example
端点,但我只能看到 /error
端点。
最佳答案
编写您自己的 swagger 配置并在下面定义一个 bean,无论您将提供什么基础包 swagger 都会根据相同的内容过滤 API。
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select().apis(RequestHandlerSelectors.basePackage("com.company"))
.paths(PathSelectors.any())
.build();
}
}
关于java - 如何在 SwaggerUI 中显示父项目的端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58747807/