Spring WebFlux - интеграция с CompletionStages - PullRequest
0 голосов
/ 24 мая 2019

До сих пор я реализовывал асинхронный неблокирующий ввод-вывод с CompletionStages, но сейчас я пытаюсь создать службу Spring-Webflux при попытке повторно использовать существующий код.

У меня есть существующий HttpClient, который возвращаетCompletionStage и как часть моей логики мне нужно выполнить 3 HTTP-вызова, каждый из которых зависит от последнего.Я знаю, что могу преобразовать CompletionStage в Mono, используя Mono.fromCompetionStage, но мне интересно, как я могу свободно составлять вызовы, чтобы мой контроллер отдыха мог возвращать Mono, представляющий все операции в последовательности.

Я знаю, что, если бы я просто использовал CompletionStages, я мог бы связать их, используя thenCompose:

return client.firstCall()
             .thenCompose(client::secondCall)
             .thenCompose(client::thirdCall)  

Любая идея, что лучший способ достичь этого, была бы с использованием Mono.Если ответ состоит в том, чтобы взять полученный CompletionStage из приведенного выше кода и выполнить Mono.fromCompletionStage Я вижу небольшой смысл, так как Spring-Weblfux поддерживает возврат CompletionStages.

...