Я использую Spring и Kafka, я делаю HTTP-запрос POST, как показано ниже, и отправляю некоторую информацию в другой сервис через тему Kafka.
@RequestMapping(method = RequestMethod.POST, value = "/portfolio")
public void getPortfolio(
Authentication auth,
@RequestBody User user
) {
//Data Transfer Object
UserDTO dto = user.toDTO();
dto.setId(((AuthenticatedUser) auth.getPrincipal()).getId());
//Sending message to Kafka topic
sender.sendPortfolioRequest(dto);
}
Затем я хочу прослушать ответ по другой теме и вернуть данные в ответ HTTP, но я застрял здесь. Я могу прослушать ответ, используя метод прослушивателя, описанный ниже, но не знаю, как соединить их вместе.
@KafkaListener(
topics = Topics.PORTFOLIO_RESULT,
containerFactory = "portfolioKafkaListenerContainerFactory"
)
public void portfolioListener(UserPortfolioDTO portfolio) {
System.out.println("Recieved Portfolio: " + portfolio.toString());
}
P.S. Я новичок в использовании HTTP-запросов и не знаю, является ли это правильным способом сделать то, что я пытаюсь достичь, или мне следует создавать новый ресурс с POST и перенаправлять на это или что-то еще.