Я использую весеннюю интеграцию для определения потока, который будет делать две вещи: сначала выполнить HTTP-вызов с заданной полезной нагрузкой, а затем использовать предоставленный ответ и исходную полезную нагрузку, чтобы сделать еще один http-вызов ,Весна Интеграция JAVA DSL Использование исходной полезной нагрузки при последующем вызове
Как это можно достичь? В приведенном ниже коде я могу использовать и модифицировать первую полезную нагрузку и использовать ее в firstHttpRequest, но тогда как я могу использовать исходную полезную нагрузку с ответом от firstHttpRequest?
Любые хорошие практики?
@Bean
public IntegrationFlow makeHttpCalls(){
return message -> message
.transform(new GenericTransformer<Message<String>, String>() {
@Override
public String transform(Message<String> message){
return message.getPayload() + " first call";
}
})
.handle(makeFirstHttpRequest())
.transform(new GenericTransformer<Message<String>, String>() {
@Override
public String transform(Message<String> message) {
logger.debug("Response from transform: " + message);
return message.getPayload();
}
})
.handle(makeSecondHttpRequest())
.channel("entrypoint");
}
Спасибо, я думал об использовании .enrichHeaders() и заполнении заголовка на самом деле не лучший подход, так как он будет использовать этот настраиваемый заголовок в http-вызове. Где именно использовать .enrich()? Прежде чем сделать http-вызов? – karruma
??? «DefaultHttpHeaderMapper» не отображает пользовательские заголовки. Необходимо понять определение 'makeFirstHttpRequest()'. –
Это обработчик, который я использую, чтобы позвонить: 'Http.outboundGateway (FIRST_CALL_URI) .extractPayload (true) .httpMethod (HttpMethod.POST) .expectedResponseType (String.class) .get();' должен ли я использовать другой? – karruma