如何通过Apache Camel调用RESTful服务?

jas*_*t24 10 java rest jira apache-camel

我目前正在使用HTTP方法来调用一些会产生JIRA问题的URL.

现在我想使用Apache Camel,我该如何使用它?

我需要通过Camel调用以下链接:

http://localhost:8080/rest/api/2/project/" + key + /components
Run Code Online (Sandbox Code Playgroud)

由于我是Camel的新手,请提供一些解决方案和示例.

谢谢

Cla*_*sen 9

另请参阅此常见问题解答,了解如何在Camel中使用动态到端点 http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html

基本上,EIP模式就是收件人列表.

因此,在您的情况下,它也可以简化为一个EIP

<recipientList>
  <simple>http://localhost:8080/rest/api/2/project/${header.myKey}/components</simple>
</recipientList>
Run Code Online (Sandbox Code Playgroud)

注意Camel中的http组件是完全同步的.如果您想通过HTTP进行请求/回复并避免在等待回复消息时使用调用程序块,那么您可以使用Camel中的一些其他HTTP组件,例如:

  • 骆驼AHC
  • 骆驼http4
  • 骆驼码头


Mah*_*eTo 8

您可以轻松使用CXFRS组件 ; 如果由于某种原因需要使用HTTP组件,您也可以轻松使用它:

<setHeader headerName="CamelHttpUri">
      <simple>http://localhost:8080/rest/api/2/project/${header.myKey}/components</simple>
</setHeader>
<inOut uri="http://doesnt.matter.we/override/it/anyways" />
Run Code Online (Sandbox Code Playgroud)

当然,myKey在进入路径的这一部分之前,您需要使用标题丰富您的消息.