Использование плагина openapi maven:
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.2</version>
</dependency>
и генерация контроллеров пружинной загрузки с использованием pom config, например:
<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);
}
}
Это замечательно, но как мне связать это, чтобы добавить бизнес-логи c без изменения фактического сгенерированного кода? Если я расширяю контроллер для добавления бизнес-логики c, я получаю все виды проблем.
Как вы должны использовать этот сгенерированный код, чтобы расширить его, чтобы добавить правильные бизнес-логики c без изменения сгенерированный код, который будет плохим .?