У меня есть код, который отправляет два http-запроса:
return getProducts(jwt, req).flatMap(accounts -> {
var account = accounts.stream()
.filter(a -> a.number.equals(paymentOrders.Documents.get(0).AccountNumber))
.findFirst();
return runSPDigestRequest(jwt, cli ->
cli.post()
.uri(uriBuilder -> uriBuilder.path(URI_PAYMENT_ORDER).query(req.getURI().getQuery()).build())
.body(BodyInserters.fromObject(prepareParametersMap(account, paymentOrders.Documents.get(0))))
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.exchange()
, URI_PAYMENT_ORDER, "POST").flatMap(response -> {
at.decrementAndGet();
return response.toEntity(String.class);
});
});
Мои объекты paymentOrders были созданы для анализа после JSON через RequestBody:
{
"ClientId": "b215a9df-4313-46fe-a50d-d29f9a9afddb",
"Documents": [
{
"AccountNumber": "01",
},
{
"AccountNumber": "02",
}
]
}
Теперь я могу просто отправитьfirst Documents :
... paymentOrders.Documents.get(0)...
Но как лучше всего пройти через paymentOrders.Documents и отправить несколько запросов POST (cli.post) с MONO ...
PS: Мой метод имеет следующую подпись:
public Mono<ResponseEntity> sendPayments(@AuthenticationPrincipal Jwt jwt, @RequestBody PaymentOrders paymentOrders, ServerHttpRequest req) {