Я очень новичок в Apache Camel и буду очень признателен, если кто-то сможет предоставить мне, какие компоненты верблюда могут быть использованы для решения конкретной задачи. У меня есть простой REST WS. Эта услуга недоступна для аудитории. Идея состоит в том, чтобы создать средний уровень между пользовательскими запросами и службой конечных точек. Поэтому мне придется поймать запрос пользователя, сделать с ним некоторые манипуляции, отправить на ограниченный WS и дать ответ пользователю. Я только начал изучать верблюд апаче, и вопрос в том, что это лучший способ реализовать эту логику. Thx заранее!Начать с Apache Camel
ответ
Честно говоря, Camel не является правильной структурой для реализации веб-контроллеров. Конечно, есть Camel Rest Module, но он слишком растягивает ответственность за рамки.
Я рекомендую использовать более адаптивную структуру для реализации WS, например. Весна или Джерси и программно вызывается конечными точками Верблюда из обработчиков запросов. В Спринг, вызывая Camel Endpoints легко, так как CamelContext может получить autowired в ваш веб-контроллер:
camelContext.createProducerTemplate().sendBodyAndHeader("direct:myEndpoint", null, "id", id);
Для вашего Camel Root этот подход означает, что она начинается не с Direct endpoint, затем передает в Camel http конечной точке, и если необходимые пересылает выход из HTTP вызова некоторой Spring бина стадии трансформации, прежде чем окончательно передать его обратно к методу веб-обработчика контроллера:
<route>
<from uri="direct:myEndpoint"/>
<to uri="http:somehost.com"/>
<transform>
<method ref="springBean" method="doSomeTransformation"/>
</transform>
</route>
Ну есть несколько компонентов, верблюд, которые можно использовать для решения этой задачи. Подумайте о Camel как панели инструментов, где вы можете выбрать один из нескольких инструментов для одной и той же задачи.
Вы можете использовать:
- верблюд-HTTP4 http://camel.apache.org/http4.html
- верблюд-Джетти http://camel.apache.org/jetty.html
- верблюд-Restlet http://camel.apache.org/restlet.html
- верблюд-CXFRS http://camel.apache.org/cxfrs.html
Пример использования Java DSL:
from("jetty://http://localhost:7070/test").to("jetty://http://localhost:7070/test1");
Пример использования чертеж
<route>
<from uri="jetty://http://localhost:7070/test"/>
<to uri="jetty://http://localhost:7070/test1"/>
<route>
Whis это получение downvote? –