[Java][Vert.x] Make ApiHandler reusable (#8720)

* Fix #8710

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Reintroduced default constructor

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Deprecated

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
This commit is contained in:
Francesco Guardiani
2021-02-23 08:38:57 +01:00
committed by GitHub
parent 42d3dbd5d1
commit 4bf09833f4
6 changed files with 58 additions and 34 deletions

View File

@@ -21,10 +21,15 @@ public class {{classname}}Handler {
private static final Logger logger = LoggerFactory.getLogger({{classname}}Handler.class);
private final {{classname}} apiImpl;
private final {{classname}} api;
public {{classname}}Handler({{classname}} api) {
this.api = api;
}
@Deprecated
public {{classname}}Handler() {
this.apiImpl = new {{classname}}Impl();
this(new {{classname}}Impl());
}
public void mount(RouterBuilder builder) {
@@ -48,7 +53,7 @@ public class {{classname}}Handler {
logger.debug("Parameter {{paramName}} is {}", {{paramName}});
{{/allParams}}
apiImpl.{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}})
api.{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}})
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {

View File

@@ -10,7 +10,8 @@ import io.vertx.ext.web.openapi.RouterBuilderOptions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
{{#apiInfo}}{{#apis}}
import {{apiPackage}}.{{classname}}Handler;{{/apis}}{{/apiInfo}}
import {{apiPackage}}.{{classname}}Handler;
import {{apiPackage}}.{{classname}}Impl;{{/apis}}{{/apiInfo}}
public class HttpServerVerticle extends AbstractVerticle {
@@ -18,7 +19,7 @@ public class HttpServerVerticle extends AbstractVerticle {
private static final String specFile = "src/main/resources/openapi.yaml";
{{#apiInfo}}{{#apis}}
private final {{classname}}Handler {{classVarName}}Handler = new {{classname}}Handler();{{/apis}}{{/apiInfo}}
private final {{classname}}Handler {{classVarName}}Handler = new {{classname}}Handler(new {{classname}}Impl());{{/apis}}{{/apiInfo}}
@Override
public void start(Promise<Void> startPromise) {