#java #kotlin #reactive-programming #spring-webflux
#java #kotlin #реактивное программирование #spring-webflux
Вопрос:
Я использую реактивное программирование с Webflux для написания моего REST api. У меня есть объект ответа ниже, подобный этому:
class Account
{
private Customer customer;
private List<Accounts> accountList;
}
Я настраиваю customer и accountList, используя методы получения и настройки. Я вижу, что оба заполнены правильно, но мой окончательный ответ всегда возвращается с правильным «Клиентом», но это пустой список учетных записей, хотя я могу видеть данные в списке учетных записей.
return request
.bodyToMono(PersonRequest.class)
.doOnNext { logger.info("Request : $it") }
.flatMap(validateRequest(it))
.flatMap(personService::getPerson)
.doOnNext (logger.info("Final Response : $it"))
.flatMap(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON)::bodyValue);
Что я здесь делаю не так? Я вижу, что журнал «Окончательный ответ» печатается правильно, но после этого я вижу пустой список в моем ответе JSON.
Комментарии:
1. метод запроса post ValidateRequest
2. Он просто проверяет входящие запросы, например, являются ли поля null или нет. Я не думаю, что это должно что-то делать с response. Окончательный журнал ответов в порядке. Но я считаю, что последняя flatmap делает список пустым.
3. Опубликуйте больше кода
Ответ №1:
Это происходит из-за «private var» внутри моих классов данных kotlin. удаление private сработало для меня.