282.6. サンプル
282.6.1. 認証付き Restlet エンドポイント
						次のルートは、http://localhost:8080 で POST リクエストをリッスンする restlet コンシューマーエンドポイントを開始します。プロセッサーは、リクエストの本文と id ヘッダーの値をエコーするレスポンスを作成します。
					
						URI クエリーの restletRealm 設定は、レジストリーでレルムマップを検索するために使用されます。このオプションが指定されている場合、restlet コンシューマーはこの情報を使用してユーザーのログインを認証します。認証された リクエストのみがリソースにアクセスできます。このサンプルでは、レジストリーとして機能する Spring アプリケーションコンテキストを作成します。Realm Map の Bean ID は restletRealmRef と一致する必要があります。
					
						次のサンプルでは、http://localhost:8080 上のサーバーにリクエストを送信する direct エンドポイント (つまり、restlet コンシューマーエンドポイント) を開始します。
					
必要なのはそれだけです。リクエストを送信して、restlet コンポーネントを試す準備ができました。
						サンプルクライアントは、次のヘッダーを含むリクエストを direct:start-auth エンドポイントに送信します。
					
- 
								CamelRestletLogin(Camel によって内部的に使用されます)
- 
								CamelRestletPassword(Camel によって内部的に使用されます)
- 
								id(アプリケーションヘッダー)
							org.apache.camel.restlet.auth.login および org.apache.camel.restlet.auth.password は、Restlet ヘッダーとして伝播されません。
						
サンプルクライアントは、次のようなレスポンスを受け取ります。
received [<order foo='1'/>] as an order id = 89531
received [<order foo='1'/>] as an order id = 89531282.6.2. 複数のメソッドと URI テンプレートを提供する単一の restlet エンドポイント (非推奨)
この機能は 推奨されていない ため、使用しないでください。
						restletMethods オプションを使用して、複数の HTTP メソッドにサービスを提供する単一のルートを作成することができます。このスニペットは、ヘッダーからリクエストメソッドを取得する方法も示しています。
					
						複数のメソッドを提供することに加えて、次のスニペットは、restletUriPatterns オプションを使用して複数の URI テンプレートをサポートするエンドポイントを作成する方法を示しています。リクエスト URI は、IN メッセージのヘッダーでも使用できます。URI パターンがエンドポイント URI で定義されている場合 (このサンプルではそうではありません)、エンドポイントで定義された URI パターンと restletUriPatterns オプションの両方が受け入れられます。
					
						restletUriPatterns=#uriTemplates オプションは、Spring XML 設定で定義された List<String> Bean を参照します。
					
<util:list id="uriTemplates">
    <value>/users/{username}</value>
    <value>/atom/collection/{id}/component/{cid}</value>
</util:list>
<util:list id="uriTemplates">
    <value>/users/{username}</value>
    <value>/atom/collection/{id}/component/{cid}</value>
</util:list>282.6.3. Restlet API を使用して応答を設定する
Camel 2.8 から利用可能
						org.restlet.Response API を使用して応答を入力することを推奨します。これにより、Restlet API に完全にアクセスし、応答をきめ細かく制御できます。インライン Camel プロセッサーからの応答を生成する以下のルートスニペットを参照してください。
					
Restlet Response API を使用したレスポンスの生成
282.6.4. コンポーネントの最大スレッドの設定
最大スレッドオプションを設定するには、次のようにコンポーネントでこれを行う必要があります。
<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent"> <property name="maxThreads" value="100"/> </bean>
<bean id="restlet" class="org.apache.camel.component.restlet.RestletComponent">
  <property name="maxThreads" value="100"/>
</bean>282.6.5. webapp 内で Restlet サーブレットを使用する
						Camel 2.8 以降で利用可能
 サーブレットコンテナー内で Restlet アプリケーションを設定するには 3 つの方法 があり、サブクラス化された SpringServerServlet を使用すると、Restlet コンポーネントを注入することで Camel 内で設定できます。
					
サーブレットコンテナ内で Restlet サーブレットを使用すると、URI の相対パスでルートを構成し (ハードコードされた絶対 URI の制約を取り除く)、ホストするサーブレットコンテナが (新しいポートで別のサーバープロセスを生成する必要がなく) 入力リクエストを処理することができます。
前提条件
- Maven pom.xml ファイルの restlet に Spring 拡張機能への依存関係を追加する必要があります。 - <dependency> <groupId>org.restlet.jee</groupId> <artifactId>org.restlet.ext.spring</artifactId> <version>${restlet-version}</version> </dependency>- <dependency> <groupId>org.restlet.jee</groupId> <artifactId>org.restlet.ext.spring</artifactId> <version>${restlet-version}</version> </dependency>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
手順
- Restlet アプリケーションを設定するには、camel-context.xml に以下を追加します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下を web.xml に追加します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
結果
							デプロイされたルートには http://localhost:8080/mywebapp/rs/demo/1234 でアクセスできます。ここで、localhost:8080 はサーバーとサーブレットコンテナーのポート、mywebapp はデプロイされた Web アプリケーションの名前です。
						
ブラウザーには次のコンテンツが表示されます。
"Request type : GET and ID : 1234"
"Request type : GET and ID : 1234"