[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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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) {

View File

@ -11,8 +11,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.openapitools.vertxweb.server.api.PetApiHandler;
import org.openapitools.vertxweb.server.api.PetApiImpl;
import org.openapitools.vertxweb.server.api.StoreApiHandler;
import org.openapitools.vertxweb.server.api.StoreApiImpl;
import org.openapitools.vertxweb.server.api.UserApiHandler;
import org.openapitools.vertxweb.server.api.UserApiImpl;
public class HttpServerVerticle extends AbstractVerticle {
@ -20,9 +23,9 @@ public class HttpServerVerticle extends AbstractVerticle {
private static final String specFile = "src/main/resources/openapi.yaml";
private final PetApiHandler petHandler = new PetApiHandler();
private final StoreApiHandler storeHandler = new StoreApiHandler();
private final UserApiHandler userHandler = new UserApiHandler();
private final PetApiHandler petHandler = new PetApiHandler(new PetApiImpl());
private final StoreApiHandler storeHandler = new StoreApiHandler(new StoreApiImpl());
private final UserApiHandler userHandler = new UserApiHandler(new UserApiImpl());
@Override
public void start(Promise<Void> startPromise) {

View File

@ -22,10 +22,15 @@ public class PetApiHandler {
private static final Logger logger = LoggerFactory.getLogger(PetApiHandler.class);
private final PetApi apiImpl;
private final PetApi api;
public PetApiHandler(PetApi api) {
this.api = api;
}
@Deprecated
public PetApiHandler() {
this.apiImpl = new PetApiImpl();
this(new PetApiImpl());
}
public void mount(RouterBuilder builder) {
@ -50,7 +55,7 @@ public class PetApiHandler {
logger.debug("Parameter pet is {}", pet);
apiImpl.addPet(pet)
api.addPet(pet)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -74,7 +79,7 @@ public class PetApiHandler {
logger.debug("Parameter petId is {}", petId);
logger.debug("Parameter apiKey is {}", apiKey);
apiImpl.deletePet(petId, apiKey)
api.deletePet(petId, apiKey)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -96,7 +101,7 @@ public class PetApiHandler {
logger.debug("Parameter status is {}", status);
apiImpl.findPetsByStatus(status)
api.findPetsByStatus(status)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -118,7 +123,7 @@ public class PetApiHandler {
logger.debug("Parameter tags is {}", tags);
apiImpl.findPetsByTags(tags)
api.findPetsByTags(tags)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -140,7 +145,7 @@ public class PetApiHandler {
logger.debug("Parameter petId is {}", petId);
apiImpl.getPetById(petId)
api.getPetById(petId)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -163,7 +168,7 @@ public class PetApiHandler {
logger.debug("Parameter pet is {}", pet);
apiImpl.updatePet(pet)
api.updatePet(pet)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -188,7 +193,7 @@ public class PetApiHandler {
logger.debug("Parameter petId is {}", petId);
logger.debug("Parameter formBody is {}", formBody);
apiImpl.updatePetWithForm(petId, formBody)
api.updatePetWithForm(petId, formBody)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -212,7 +217,7 @@ public class PetApiHandler {
logger.debug("Parameter petId is {}", petId);
logger.debug("Parameter file is {}", file);
apiImpl.uploadFile(petId, file)
api.uploadFile(petId, file)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {

View File

@ -20,10 +20,15 @@ public class StoreApiHandler {
private static final Logger logger = LoggerFactory.getLogger(StoreApiHandler.class);
private final StoreApi apiImpl;
private final StoreApi api;
public StoreApiHandler(StoreApi api) {
this.api = api;
}
@Deprecated
public StoreApiHandler() {
this.apiImpl = new StoreApiImpl();
this(new StoreApiImpl());
}
public void mount(RouterBuilder builder) {
@ -43,7 +48,7 @@ public class StoreApiHandler {
logger.debug("Parameter orderId is {}", orderId);
apiImpl.deleteOrder(orderId)
api.deleteOrder(orderId)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -63,7 +68,7 @@ public class StoreApiHandler {
apiImpl.getInventory()
api.getInventory()
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -85,7 +90,7 @@ public class StoreApiHandler {
logger.debug("Parameter orderId is {}", orderId);
apiImpl.getOrderById(orderId)
api.getOrderById(orderId)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -108,7 +113,7 @@ public class StoreApiHandler {
logger.debug("Parameter order is {}", order);
apiImpl.placeOrder(order)
api.placeOrder(order)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {

View File

@ -20,10 +20,15 @@ public class UserApiHandler {
private static final Logger logger = LoggerFactory.getLogger(UserApiHandler.class);
private final UserApi apiImpl;
private final UserApi api;
public UserApiHandler(UserApi api) {
this.api = api;
}
@Deprecated
public UserApiHandler() {
this.apiImpl = new UserApiImpl();
this(new UserApiImpl());
}
public void mount(RouterBuilder builder) {
@ -48,7 +53,7 @@ public class UserApiHandler {
logger.debug("Parameter user is {}", user);
apiImpl.createUser(user)
api.createUser(user)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -71,7 +76,7 @@ public class UserApiHandler {
logger.debug("Parameter user is {}", user);
apiImpl.createUsersWithArrayInput(user)
api.createUsersWithArrayInput(user)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -94,7 +99,7 @@ public class UserApiHandler {
logger.debug("Parameter user is {}", user);
apiImpl.createUsersWithListInput(user)
api.createUsersWithListInput(user)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -116,7 +121,7 @@ public class UserApiHandler {
logger.debug("Parameter username is {}", username);
apiImpl.deleteUser(username)
api.deleteUser(username)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -138,7 +143,7 @@ public class UserApiHandler {
logger.debug("Parameter username is {}", username);
apiImpl.getUserByName(username)
api.getUserByName(username)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -162,7 +167,7 @@ public class UserApiHandler {
logger.debug("Parameter username is {}", username);
logger.debug("Parameter password is {}", password);
apiImpl.loginUser(username, password)
api.loginUser(username, password)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -182,7 +187,7 @@ public class UserApiHandler {
apiImpl.logoutUser()
api.logoutUser()
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {
@ -207,7 +212,7 @@ public class UserApiHandler {
logger.debug("Parameter username is {}", username);
logger.debug("Parameter user is {}", user);
apiImpl.updateUser(username, user)
api.updateUser(username, user)
.onSuccess(apiResponse -> {
routingContext.response().setStatusCode(apiResponse.getStatusCode());
if (apiResponse.hasData()) {