Рубрики
Без рубрики

Apache Camel #2 – Вызов Rest API

Вызовите rest API с помощью apache camel. С тегами apache camel, java, rest, tutorial.

Привет!

Это второй текст об Apache Camel, в будущем их будет намного больше. Цель этой статьи – показать людям реальную мощь Camel, возможно, некоторые из вас найдут вариант использования, в котором вы сможете использовать этот фреймворк вместо того, чтобы снова и снова писать шаблонный код.

Сегодня мы будем использовать Camel для вызова конечной точки API и обработки некоторых исключений.

Зависимости

Зависимость Camel от http

Маршруты

Маршрут планировщика

Если вы помните из введение , это маршрут планировщика, он будет запускать сообщение каждые 120 секунд и отправлять его по маршруту “direct: HttpRoute”. Я использую синхронный “прямой”/| компонент, есть также асинхронный “седа” компонент.

@Override"
public void configure() {

    from("timer:scheduler?period=120000")
            .log("Scheduled job!")
            .to("direct:httpRoute");

}

Http-маршрут

Это маршрут HTTP-клиента, он вызовет rest API bittrex, получит криптовалюты и зарегистрирует ответ.

@Override
public void configure() {

    from("direct:httpRoute")
            .log("Http Route started")
            .setHeader(Exchange.HTTP_METHOD).constant(HttpMethod.GET)
            .to("https://api.bittrex.com/api/v1.1/public/getcurrencies")
            .log("Response : ${body}");

}

Обработчики ошибок

Если вы хотите охватить некоторые исключения, есть два варианта.

  1. Обработчик ошибок по умолчанию
  2. Предложение onException для обработки исключений определенного класса.

@Override public void configure() {

    errorHandler(deadLetterChannel("mock:errorHandler"));

    onException(HttpOperationFailedException.class)
            .log("${exception}")
            .to("mock:errorHandler");

    from("direct:httpRoute")
            .log("Http Route started")
            .setHeader(Exchange.HTTP_METHOD).constant(HttpMethod.GET)
            .to("https://api.bittrex.com/api/v1.1/public/getcurrencies")
            .log("Response : ${body}");

}

Результаты

Это все для этого урока, если что-то непонятно, не стесняйтесь обращаться ко мне, я с радостью отвечу на любой вопрос.

Спасибо!

Оригинал: “https://dev.to/djoleb/apache-camel-calling-rest-api-25en”