我有两个项目,一个是类似机箱的项目,具有某些依赖项,并且spring-boot-starter-parent
是父项,一个是带有REST端点的模块,第二个是以第一个项目为父项的项目,它具有主要方法运行Spring Boot应用程序。
我正在使用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和/example
中看到.json
端点,但是我只能看到/error
端点。
答案 0 :(得分:0)
编写您自己的swagger配置并在下面定义一个bean,无论您将提供的基本包如何,swagger都会根据该API过滤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();
}
}