我有一个父maven模块,由多个基于jax rs的子模块组成,如下所示:
<groupId>com.organization.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0</version>
....
<modules>
<module>customers-api</module>
<module>products-api</module>
<module>users-api</module>
<modules>
将此作为示例性的pseudo pom.xml结构。每个子模块都是基于jax-rs的rest facade,由数百个资源组成。我想插入swagger,生成包含每个模块的公共raw swagger.json规范,作为单独的swagger api,例如:
/customers
/products
/users
我正试图通过swagger maven插件实现这一点:https://github.com/openapi-tools/swagger-maven-plugin
我尝试通过在customers api模块中添加一个包来测试它,如下所示:
<profile>
<id>generate-swagger-docs</id>
<modules>
<module>customers-api</module>
<module>products-api</module>
<module>users-api</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>io.openapitools.swagger</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>1.0.3</version>
<dependencies>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.0</version>
</dependency>
</dependencies>
<configuration>
<resourcePackages>
<resourcePackage>com.organization.project.api.customers.controller</resourcePackage>
</resourcePackages>
<outputDirectory>${basedir}/target/</outputDirectory>
<outputFilename>swagger</outputFilename>
<outputFormats>JSON,YAML</outputFormats>
<prettyPrint>true</prettyPrint>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
此包中的一个我的终结点:
@Path(Customers.PATH)
public interface Customers {
String PATH = "/customers";
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
void saveChanges(CustomerEntity customerEntity);
但是,生成的swagger.json是空的。这里可能会出什么问题?
还有,有没有一种方法(另一个插件或库)可以更容易地生成swagger定义,比如说,使用上下文根扫描,而不列出我的子模块中的所有包?
暂无答案!
目前还没有任何答案,快来回答吧!