Я пытаюсь построить верблюжий маршрут, чтобы использовать сообщение из ActiveMQ, извлечь некоторые поля JSON и отправить извлеченную полезную нагрузку на сервер graphql. Я следил за документацией по компоненту graphql, однако не смог понять, как динамически получать значения переменных из биржи.
# bookByIdQuery.graphql
query($id : String!) {
book(id :$id) {
id
name
}
}
@BindToRegistry("bookByIdQueryVariables")
public JsonObject bookByIdQueryVariables() {
JsonObject variables = new JsonObject();
variables.put("id", "book-1");
return variables;
}
from("direct:start")
.to("graphql://http://example.com/graphql?queryFile=bookByIdQuery.graphql&variables=#bookByIdQueryVariables")
В приведенном выше примере я хочу получить значение переменной от биржи. Я имею в виду книгу-1, которую мне нужно получить на бирже. Для этого я сделал метод, который принимает обмен в качестве параметра, однако он не заменяет значения в запросе. Я попытался выполнить отладку и увидел, что обмен имеет значение null, а bean-компонент bookByIdQueryVariables найден в контексте. Похоже, что нет преобразователя для преобразования типа bookByIdQueryVariables в объект JSON. Пожалуйста, предложите, если есть проблема в запросе graphql или переменной bean. Любая помощь приветствуется