Как совершать звонки через API при помощи цепочек webflux / webclient - PullRequest
0 голосов
/ 07 марта 2019

Я создаю сервис-агрегатор, который должен вызывать API и основанный на ответе на второй вызов make и так далее.Поэтому я называю цепочку apis, каждая из которых зависит от ответа предыдущего.

Example Scenario:
    request 1 {"Date1" : "2019-03-03"}    
    response 1 {"price" : 10}
    request 2 {"Date1" : "2019-03-03", "price":10}
    response 2 {"recommendedPrice" : 8}
    request 2 {"Date1" : "2019-03-03", "price":10, "recommendedPrice":8}
    and so on

Я создал это

public Mono<Result> getFinalRes(Request req){
    res = client.post()
    .uri(url)                                                                                                                           
    .body(BodyInserters.fromObject(request))
    .exchange()
    .flatMap(res -> res.bodyToMono(PriceTuple.class))   

    return res.subscribe(res -> getApi2(res,request ))
}
                        Or

public Mono<Result> getFinalRes(Request req){
    res = client.post()
    .uri(url)                                                                                                                           
    .body(BodyInserters.fromObject(request))
    .exchange()
    .flatMap(res -> getApi2(res,request ))   

}

getApi2 () снова делает подобные вещи.Правильно ли я делать цепочку таким образом или есть какой-то лучший способ сделать такую ​​цепочку запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...