Buenas.
Tengo una aplicación en Spring Boot que expone un endpoint. El tema es que ese endpoint genera un mensaje y lo envía a una cola de Rabbit, hace lo que tiene que hacer y lo recupero con un listener. Lo que no sé es cómo devolver desde el endpoint lo que recupera el listener.
El código es una cosa así:
@RestController
@RequestMapping("auth")
public class MyClass {
@PostMapping(value = "/login", produces = MediaType.APPLICATION_JSON_VALUE)
public Dto login(@RequestBody Dto dto, @RequestHeader HttpHeaders headers) {
//Cosas
rabbitTemplate.processAndSend(EXCHANGE, TOPIC, message);
//Aquí debería ir el código que recupera el mensaje de la cola y lo devuelve hacia afuera.
}
@Bean
MessageListener listenerAdapter(ApplicationContext context) {
return new MessageListener() {
@Override
public void onMessage(org.springframework.amqp.core.Message message) {
//Recupero el mensaje y lo convierto a Dto.
}
};
}
}
¿Alguien sabe cómo recuperar la respuesta del mensaje que has enviado dentro del propio PostMapping y devolverla como response del endpoint?
Grasiah.