Я внедряю службу JAX-RS на сервере приложений, используя Vert.x для хранения данных в сочетании с пулом Vert.x Pg. Хранить данные довольно просто, так как клиенту нечего возвращать. Однако, когда дело доходит до HTTP GET-запроса, он становится более сложным. Например:
public List<Data> findAll() {
List<Data> list = new ArrayList<>();
pool.query("SELECT * FROM DATA", ar -> {
if (ar.succeeded()) {
RowSet rows = ar.result();
for (Row row : rows) {
list.add(new Data(row.getString(0), row.getString(1)));
}
} else {
System.out.println("Failure: " + ar.cause().getMessage());
}
});
return list;
}
Итак, как вы можете видеть, будучи "ar" io.vertx.core.AsyncResult, он возвращается немедленно, с пустым ArrayList. Я понимаю, что должен вернуть AsyncResult или его подкласс, просто у меня нет идеи, как клиент мог получить список объектов, когда запрос завершен. Любая идея / пример? Спасибо!