Я работал над микросервисом Java, который использует Reactor для упрощения асинхронных вызовов.На моей конечной точке у меня есть следующий код:
@HystrixCommand
@ApiOperation(value = "Resolve Dispute")
@PostMapping(consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE, path = "/resolve")
public Mono<RestResponse<RestResponseResult>> resolveDispute(@RequestBody ResolveDisputeRequest requestJson, @RequestParam("appToken") String appToken) {
if (apiAppToken.equals(appToken)) {
EnumsUtils.getEnumValue(DisputeReason.values(), requestJson.getResolutionType(), requestJson);
return facebookApiService.resolveDispute(requestJson).single();
} else {
throw new InvalidTokenException(requestJson.getUserId());
}
}
Который я бы ожидал вернуть объект
{
result: true/false
}
Однако, проверяя код, я понимаю, что ответ выдандо того, как код завершит свой процесс.Ответ:
{
"scanAvailable": true
}
. Это заставляет меня поверить, что это связано с асинхронной природой Reactor, но не соответствует моим потребностям.
Как правильно использоватьРеактор для того, чтобы получить требуемый ответ?Я не хочу использовать метод block
, который блокирует вызовы.
Заранее благодарен за любую предоставленную помощь.
Всего наилучшего,
Алехандро