【发布时间】:2020-01-26 13:50:23
【问题描述】:
使用 openapi maven 插件:
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.2</version>
</dependency>
并使用以下 pom 配置生成 Spring Boot 控制器:
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.2</version>
<executions>
<execution>
<id>spring-server</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- specify the swagger yaml -->
<inputSpec>${project.resources[0].directory}/pet-store.yaml</inputSpec>
<!-- target to generate java client code -->
<generatorName>spring</generatorName>
<!-- pass any necessary config options -->
<configOptions>
<serializableModel>true</serializableModel>
<snapshotVersion>true</snapshotVersion>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
会生成这样的控制器:
@Controller
@RequestMapping("${openapi.openAPIPetstore.base-path:/v2}")
public class StoreApiController implements StoreApi {
private final NativeWebRequest request;
@org.springframework.beans.factory.annotation.Autowired
public StoreApiController(NativeWebRequest request) {
this.request = request;
}
@Override
public Optional<NativeWebRequest> getRequest() {
return Optional.ofNullable(request);
}
}
这很好,但我如何绑定到它以添加业务逻辑而不更改实际生成的代码?如果我扩展控制器以添加业务逻辑,我会遇到各种问题。
你应该如何使用这个生成的代码,扩展它以添加正确的业务逻辑而不改变生成的代码,这会很糟糕。
【问题讨论】:
标签: java spring-boot openapi openapi-generator