# cREST

JAX-RSサービスに接続するために、Apache CXFへの組み込み機能を提供します。

詳細は、Apache Camelのドキュメンテーションhttps://camel.apache.org/components/latest/を参照してください。

## cRESTの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているcRESTを設定するために使われます。

標準のcRESTコンポーネントは、Connectivityファミリーに属しています。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| [API Definition / Definition] (API定義 / 定義) | API定義の設定方法を選択します。<br><br><ul> <li> <p> <span>[Built-In] (組み込み)</span>: このコンポーネント用にAPI定義がローカルに設定されます。関連するすべての接続のプロパティ値を手動で指定する必要があります。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: <span><span>[Repository] (リポジトリー)</span><abbr> &gt; </abbr><span>[REST API Definitions] (REST API定義)</span></span>に一元的に保存されているAPI定義がこのコンポーネントによって再利用されます。 </p> <p>このチェックボックスの横にある<span>[...]</span>ボタンをクリックし、表示された <span>[Repository Content] (リポジトリーの内容)</span>ダイアログボックスで、再利用するAPI定義を選択すると、関連するすべてのプロパティに値が自動的に入力されます。</p> </li> </ul><br><br>Talendが提供するR2023-05以降のTalend Studioマンスリーアップデートをインストール済みである場合は、[Repository] (リポジトリー)ツリービューのMetadataノードからデザインワークスペースにREST API定義をドラッグ＆ドロップすることでcRESTコンポーネントを作成できます。 |
| [Endpoint] (エンドポイント) | RESTサービスが提供されるサービスエンドポイントURL。"http://localhost:8088/services/customers"のように明示的なポート番号を指定するか、Talendのデフォルトポートを使い、"/services/customers"のように相対パスのみを指定します。<br><br>デフォルトポートは、ビルドタイプや、サービスを実行する場所によって異なります。<br><br><ul> <li><span>Talend Studio</span>内でサービスを実行するには: 8090</li> <li><span>Talend Runtime Container</span>内でサービスを実行するには: HTTP 8040はすべてのサービスに使われるためです。また、HTTPSが<span> Talend Runtime</span>で有効な場合、サービスは9001でも公開されます。</li> <li>サービスをマイクロサービスとして実行するには: 8065</li> </ul><br><br>エンドポイントはコンテキスト変数を使って定義できます。Talend Studioマンスリーアップデートの詳細は、管理者にお問い合わせください。 |
| タイプ | RESTサービスを提供するために使うタイプを選択します。[Manual] (手動)またはresourceClassのいずれか。<br><br>[Manual] (手動): cRESTがサービスプロバイダーとして使われている場合は、REST APIマッピングをテーブルで手動で決定するか、コンポーネントがサービスコンシューマーとして使われている場合は、HTTPメソッドとその他のパラメーターを設定します。<br><br>resourceClass: RESTサービスとしてエクスポートするリソースクラスを提供するには、このタイプを選択します。 |
| [REST API mapping] (REST APIマッピング) | このテーブルは、[Manual] (手動)サービスタイプが選択され、cRESTがサービスプロバイダーとして使われている場合に表示されます。<br><br>テーブルの下にある[+]をクリックして必要な数の行を追加し、HTTPリクエストを指定します。<br><br>[Output Flow] (出力フロー): 出力フローの名前を指定します。<br><br>[HTTP Verb] (HTTP動詞): リスト内のGET、POST、PUT、DELETE、OPTIONS、HEAD、PATCHからHTTPメソッドを選択します。<br><br>[URI pattern] (URIパターン): リソースを説明するREST URIをこのフィルターに入力します。<br><br>[Consumes] (コンシューム): [HTTP Verb] (HTTP動詞)がPOSTまたはPUT、PATCHの場合は、コンポーネントが使うコンシュームコンテンツの形式タイプを、[XML or JSON] (XMLまたはJSON)、XML、JSON、Form、Multipart、Anyから選択します。<br><br>[Produces] (プロデュース): HTTP VerbがGET、POST、PUT、またはDELETE、PATCH場合は、コンポーネントが使うプロデュースコンテンツの形式タイプを、[XML or JSON] (XMLまたはJSON)、XML、JSON、HTML、Anyから選択します。<br><br>[Bean class] (Beanクラス): [HTTP Verb] (HTTP動詞)がPOST、PUT、PATCHのいずれかであり、コンシュームコンテンツの形式が[XML or JSON] (XMLまたはJSON)、XML、JSONのいずれかである場合は、Beanクラスを設定します。 |
| [Resource Class] (リソースクラス) | このフィールドは、resourceClassサービスタイプを選択すると表示されます。RESTサービスとしてエクスポートするリソースクラスの名前を入力します。 |
| [Operation] (操作) | このフィールドは、resourceClassサービスタイプを選択し、サービスコンシューマーとしてcRESTを使っている場合に表示されます。操作の名前を入力します。 |
| [Relative Path] (相対パス) | このフィールドは、[Manual] (手動)サービスタイプを選択し、サービスコンシューマーとしてcRESTを使っている場合に表示されます。呼び出すRESTサーバーの相対パスを入力します。 |
| [HTTP Method] (HTTPメソッド) | このオプションは、[Manual] (手動)サービスタイプを選択し、サービスコンシューマーとしてcRESTを使っている場合に表示されます。リスト内のGET、POST、PUT、DELETE、PATCH、HEAD、OPTIONSからHTTPメソッドを選択します。<br><br>情報メモ警告:<br><br>POSTメソッドを使ってオブジェクトを作成する場合、デフォルトでは、作成されたオブジェクトIDはヘッダーから返されません。デフォルトでは、cRESTはシステムヘッダーを除くすべてのヘッダーをフィルタリングします。作成されたオブジェクトIDを取得するには、javax.ws.rs.core.Responseをレスポンスクラスとして設定する必要があります 。 |
| [Content Type] (コンテンツタイプ) | このオプションは、[Manual] (手動)サービスタイプを選択し、サービスコンシューマーとしてcRESTを使っている場合に表示されます。<br><br>サーバーエンドにアップロードするコンテンツのメディアタイプに応じて、[XML]、[JSON]、[FORM]のいずれかを選択します。このリストは、[HTTP Method] (HTTPメソッド)リストでPOST、PUT、PATCHのいずれかを選択した場合にのみ表示されます。 |
| [Accept Type] (許可タイプ) | このフィールドは、[Manual] (手動)サービスタイプを選択し、サービスコンシューマーとしてcRESTを使っている場合に表示されます。<br><br>クライアントエンドで、サーバーエンドからの受信を許可するレスポンスのメディアタイプを選択します。オプションには、[XML]、[JSON]、[ANY] (すべて)があります。[ANY] (すべて)を選択すると、すべてのタイプのレスポンスメールを受け入れ、文字列に変換します。このリストは、DELETEメソッドを選択した場合は表示されません。 |
| [Response Class] (レスポンスクラス) | このフィールドは、[Manual] (手動)サービスタイプを選択し、サービスコンシューマーとしてcRESTを使っている場合に表示されます。レスポンスクラスの名前を入力します。 |
| [Skip incoming data unmarshalling] (受信データのマーシャリング解除を省略) | このチェックボックスをオンにすると、サーバーレスポンスデータのマーシャリング解除を省略できます。このオプションは、ルートが動作できるデータをサーバーが既に提供し、型変換の必要性を回避できる場合に使われます。 |
| Service Locatorを使用 | このチェックボックスをオンにすると、Service Locatorが有効になります。サービスネームスペースとサービス名をそれぞれのフィールドに指定します。 |
| Service Activity Monitoringを有効化 | サービスアクティビティモニタリングを有効にするには、このチェックボックスをオンにします。<br><br>このオプションはランタイムでのみ使えます。Talend Studioでルートを実行する場合は、このチェックボックスをオフにすることをお勧めします。オンにしていると、実行コンソールに警告が表示されます。 |
| セキュリティ | このチェックボックスをオンにすると、セキュリティオプションが有効になります。次のいずれかのセキュリティスキームを選択します:<br><br><ul> <li> <span>[HTTP Basic] (HTTPベーシック)</span>: HTTPヘッダーに標準フィールドを使ってWebリソースへのアクセス制御を強制する最も単純な手法です。</li> <li> <span>[JWT Bearer Token] (JWT Bearerトークン)</span>: JSON形式でデータを保存および交換することを目的とした、オープンかつ標準化された方法。 </li> <li> <span>[SAML Token (ESB runtime only)] (SAMLトークン (ランタイムのみ))</span>: IDプロバイダーとサービスプロバイダーの間で認証データを交換するための、XMLベースでオープン標準のデータ形式。</li> <li> <span>[Open ID Connect] (ID接続を開く)</span>: OAuth2の拡張機能で、クライアントは認証サーバーによって実行される認証に基づいてエンドユーザーのIDを確認したり、エンドユーザーに関する基本的なプロファイル情報を相互運用可能なRESTに類似した方法で入手したりできます。詳細は、<a href="https://help.qlik.com/talend/r/en-US/8.0/esb-infra-services-configuration-guide/talend-identity-and-access-management" target="_blank">Talend Identity and Access Management</a>および<a href="https://help.qlik.com/talend/r/en-US/8.0/administration-center-user-guide/managing-esb-resources-and-authorizations" target="_blank">ESBリソースと認証の管理</a>をご覧ください。</li> </ul><br><br>cRESTコンポーネントがコンシューマーとして使われている場合は、必要に応じてユーザー名とパスワードをそれぞれのフィールドに入力します。パスワードを入力するには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符の間に入力し、OKをクリックして設定を保存します。 |
| [JWT configuration] (JWT設定) | [Security] (セキュリティ)リストで[JWT Bearer Token] (JWT Bearerトークン)が選択されると、JWT設定オプションが表示されます。[Keystore Type] (Keystoreタイプ)リストで、次のいずれかを選択します:<br><br><ul> <li> <span>Java Keystore (*.jks)</span> - ローカルのJavaキーストアファイルを入力します</li> <li> <span>PKCS12 Keystore (*.p12、*.pfx)</span> - PKCS12形式のローカルキーストアファイルを入力します</li> <li> <span>JSON Web Key Sets (JWKS)</span> - オンラインキーセットのURLをします</li> </ul><br><br>Java Keystore (\*.jks)またはPKCS12 Keystore (\*.p12、\*.pfx)の場合は、キーストアファイルの場所と関連するパスワードを、[Keystore File] (キーストアファイル)フィールドと[Keystore Password] (キーストアパスワード)フィールドにそれぞれ入力する必要があります。必要であれば、[Keystore Alias] (Keystoreエイリアス)と[Audience] (オーディエンス)も設定できます。<br><br>JSON Web Key Sets (JWKS)の場合は、JWKS URLフィールドでオンラインキーセットのURLを指定する必要があります。必要であれば、[Audience] (オーディエンス)も設定できます。 |
| [Use Authorization] (認証サービスを使用) | このオプションは、Talend Enterprise ESBソリューションをサブスクライブしている場合のみ利用可能です。[Security] (セキュリティ)リストで[SAML Token (ESB runtime only)] (SAMLトークン(ESB Runtimeのみ))を選択すると表示されます。<br><br>cRESTコンポーネントをサービスプロバイダーとして使う場合は、このチェックボックスをオンにして認証を有効にします。<br><br>cRESTコンポーネントをサービスコンシューマーとして使う場合は、このチェックボックスをオンにして許可された呼び出しを有効にし、[Role] (ロール)フィールドにクライアントのロールを指定します。 |
| [Use Business Correlation] (ビジネスコリレーションを使用) | このチェックボックスをオンにしてこのコンポーネントにコリレーションIDを作成します。<br><br>コリレーションIDは[Correlation Value] (コリレーション値)フィールドで指定できます。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Log messages] (ログメッセージ) | ルートのメッセージ交換を記録するには、このチェックボックスをオンにします。 |
| [Expose OpenAPI documentation] (OpenAPIドキュメンテーションを公開) | このチェックボックスを選択すると、API実装のドキュメンテーションが有効になります。このオプションを有効化すると、APIドキュメンテーションにアクセスできるよう、デプロイされたRESTサービスが以下のエンドポイントを提供します:<br><br><ul> <li><span>http://host:port/[component_endpoint]/openapi.json</span>: APIドキュメンテーションをプレーンテキストとして(OpenAPI 3.0.1形式のJSONファイル)。</li> <li><span>http://host:port/[component_endpoint]/api-docs</span>: APIドキュメンテーションを備えたUIと、API操作をテストできる機会。</li> </ul><br><br>このオプションが有効化され、RESTサービスがマイクロサービスとしてビルドされている場合、マイクロサービスJAR内のapplication.properties設定ファイルにexposeOpenApi=[true/false]パラメーターを追加するか、マイクロサービス実行時のコマンドで-DexposeOpenApi=[true/false]パラメーターを使用することで、APIドキュメンテーションを有効化または無効化できます。<br><br>情報メモ注:<br><br>このオプションは、Talendが提供するR2025-10以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は、管理者にお問い合わせください。<br><br>Talend Runtimeでこの機能を使用するには、 Talend Runtime8.0.1-R2025-10パッチ以降をインストールする必要があります。 |
| [File] (引数) | オプションの引数を対応するテーブルに設定します。[+]を必要な回数だけクリックして、テーブルに引数を追加します。次に、対応する[Value] (値)フィールドをクリックして、値を入力します。利用可能なURIオプションは、http://camel.apache.org/cxfrs.htmlを参照してください。 |
| [JAXRS properties] (JAXRSプロパティ) | このオプションは、[Basic settings] (基本設定)タブの[Security] (セキュリティ)リストで[JWT Bearer Token] (JWT Bearerトークン)が選択されている場合に表示されます。[+]をクリックして、テーブルに必要なだけのプロパティを追加します。[Property Name] (プロパティ名)フィールドでは、ドロップダウンリストからプロパティを選択することも、リストにないプロパティ名を入力することもできます。[Property Value] (プロパティ値)フィールドにプロパティの値を入力します。JAXRSプロパティの詳細は、[Apache CXFのドキュメンテーション](https://cxf.apache.org/docs/jax-rs-jose.html#JAXRSJOSE-Configuration)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | cRESTは、サービスプロバイダーとしてルートの開始コンポーネント、またはサービスコンシューマーとして中間または終了コンポーネントにできます。 |
| 制限事項 | ライセンスの互換性の問題のため、このコンポーネントの使用に必要な1つ以上のJARが提供されていません。この特定のコンポーネントに不足しているJARをインストールするには、Component (コンポーネント)タブビューの[Install] (インストール)ボタンをクリックします。Talend StudioのIntegrationパースペクティブにある[Modules] (モジュール)タブでも、不足しているすべてのJARを簡単に見つけて追加できます。詳細は、[外部モジュールをインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/installing-external-modules)をご覧ください。 |

**関連概念**

* [cRESTを使ってRESTサービスへのHTTP POST呼び出しを行う](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/crest-clog-csetheader-ctimer-making-http-post-call-to-rest-service-using-crest)
* [cRESTを使ってRESTサービスを提供し、消費する](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/crest-clog-cbeanregister-ctimer-providing-and-consuming-rest-service-using-crest)
* [Keycloakを使ったJWT検証によってRESTサービスをセキュリティ保護](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/securing-rest-service-with-jwt-validation-using-keycloak)
* [Microsoft Entra IDを使ったJWT検証によってRESTサービスをセキュリティ保護](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/securing-rest-service-with-jwt-validation-using-microsoft-entra-id)
* [Talend Cloud IAMを使ったJWT検証によってRESTサービスをセキュリティ保護](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/securing-rest-service-with-jwt-validation-using-talend-cloud-iam)
* [Talend STSを使ったJWT検証によってRESTサービスをセキュリティ保護](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/securing-rest-service-with-jwt-validation-using-talend-sts)