web-dev-qa-db-ja.com

Apache Camelを介してRESTfulサービスを呼び出すにはどうすればよいですか?

現在、JIRAの問題を引き起こすURLを呼び出すためにHTTPメソッドを使用しています。

Apache Camelを使用したいのですが、どうすれば使用できますか?

Camelを介して次のリンクを呼び出す必要があります。

http://localhost:8080/rest/api/2/project/" + key + /components

私はCamelを初めて使用するので、いくつかの解決策と例も提案してください。

ありがとう

10
jasmeet24

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" />

そしてもちろん、ルートのこの部分に到達する前に、myKeyヘッダーでメッセージを充実させる必要があります。

8
MahdeTo

Camelのエンドポイントへの動的な使用についてFAQ http://camel.Apache.org/how-do-i-use-dynamic-uri-in-to。 html

基本的に、このためのEIPパターンは受信者リストです。

したがって、あなたの場合は、1つのEIPとして簡略化することもできます

<recipientList>
  <simple>http://localhost:8080/rest/api/2/project/${header.myKey}/components</simple>
</recipientList>

Camelのhttpコンポーネントは完全に同期していることに注意してください。 HTTPを介して要求/応答を実行し、応答メッセージの待機中に呼び出し元がブロックされないようにする場合は、次のようなCamelの他のHTTPコンポーネントのいくつかを使用できます。

  • キャメル-ahc
  • キャメル-http4
  • キャメル桟橋
9
Claus Ibsen

Apacheキャメル桟橋を使用しています

CamelContext context = new DefaultCamelContext();
    public void configure(){
           context.addRoutes(new RouteBuilder(){
           from("jetty:localhost:9000/offers")
           .to("direct:getOffers")
           .end();

    }

});

したがって、ここでユーザーがヒットすると http:// localhost:9000/ohpers エンドポイントdirect:getOffersが呼び出されます

これで、getOffersエンドポイントを定義します

context.addRoutes(new RouteBuilder(){
     public void configure(){
          from("direct:getOffers")
          .to("jetty:http://localhost:9008/api/v2.0/offers?  
          bridgeEndpoint=true")
         .end();

     }

});

ここでは、別のサービスが9008で実行されており、残りのリソースは http:// localhost:9008/api/v2.0/features であり、これが私が消費しようとしているリソースです。

したがって、ラクダのインスタンスが起動すると、両方のルートが登録され、上記のように処理されます。

注これを機能させるには、?bridgeEndpoint = trueのオプションを追加することが重要です。

2
selftaught91

CXFRS Componentを使用してラクダからRESTサービスを利用できます。Apacheラクダには、これに関する十分な情報があります。

http://camel.Apache.org/cxfrs.html

0
UVM