Я использую веб-клиент Springs для вызова HTTP GET.
Как я могу проверить свойство объекта ответа GetPersonBasicInfoResWrapper
, которое я получил в ответ на свой HTTP-вызов.
Я пытаюсь проверить birthDate
внутри flatMap
, блокируя объект ответа, но это не похоже на наиболее функциональный способ сделать это.
Ниже приводится отрывок из моего кода.
private Mono<GetPersonBasicInfoResWrapper> getPersonBasicInfo(Double personId, LocalDate birthDate,
CallerRequestMetaData callerInfo) {
return middlewareWebClient
.get()
.uri(...)
...
...
.exchange()
.flatMap(client -> {
GetPersonBasicInfoResWrapper block = client.bodyToMono(GetPersonBasicInfoResWrapper.class).block();
LocalDate personBirthDate = LocalDateTime.ofInstant(block.getBirthDate().toInstant(),ZoneId.of(Constants.DEFAULT_TIME_ZOME)).toLocalDate();
if (!personBirthDate.equals(birthDate)) {
throw new YakeenRowadException(Errors.INCORRECT_ID_BIRTH_DATE_G, birthDate.toString());
} else
return client.bodyToMono(GetPersonBasicInfoResWrapper.class);
});
}
Любая помощь высоко ценится.
block()
в коде, вы потеряете всякую цель использования webflux, если заблокируете. Сначала вернитеMono<GetPersonBasicInfoResWrapper>
, затем подтвердите, вызвавMono<GetPersonBasicInfoResWrapper>#flatMap
- person Toerktumlare   schedule 30.03.2020