# tRESTRequest

GET/POST/PUT/PATCH/DELETEリクエストをサーバーエンドのクライアントから受け取ります。

tRESTRequestは、クライアントからHTTPまたはHTTPSリクエストを受け入れ、GET、POST、PUT、PATCH、およびDELETE HTTP方式をサポートします。

情報メモ注:

HTTPSサポートを有効にするには、サービスをデプロイする前に、キーストアを生成し、ランタイムコンテナーの*org.ops4j.pax.web.cfg*ファイルにHTTPSセキュリティ設定プロパティを追加する必要があります。詳細は、[HTTP configuration](https://help.qlik.com/talend/r/en-US/8.0/esb-container-administration-guide/http-configuration)をご覧ください。

## tRESTRequestの標準プロパティ

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

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

*このコンポーネントは、ESBで Talend ソリューションの1つを使用している時のみ該当します。[Service] (サービス)リポジトリーノードと[Data Service] (データサービス)の作成に関連するウィザードと併用する必要があるためです。*

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| [API Definition / Definition] (API定義 / 定義) | [...]をクリックしてAPI定義ファイルを参照し、API定義にあるコンポーネントのエンドポイント、APIマッピング、ドキュメンテーションを初期化します。<br><br>APIマッピングの出力フロー値は生成されたJavaコードで使われるため、キャメルケース準拠であることが必要です。出力フロー値は、次の優先順位でAPI定義から取得または計算されます。<br><br><ul> <li>operationId: これはベストプラクティスです。OAS仕様ではoperationIdは必須フィールドではありませんが、APIデザイン時に使用することをお勧めします。</li> <li>要約(<span>Talend API Designer</span>の[Name] (名前)): 120文字に切り詰められ、サポートされている形式に変換されます。</li> <li>操作方法とパス: 要約と同じ制約を伴って計算されます。</li> </ul> |
| [REST Endpoint] (RESTエンドポイント) | REST-ful WebサービスにリクエストできるようにするURIの場所をこのフィールドに入力します。"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>エンドポイントはコンテキスト変数を使って定義できます。 |
| [REST API mapping] (REST APIマッピング) | マッピングテーブルの下にある[+]ボタンをクリックして行を追加し、HTTPリクエストを指定します。<br><br>[Output Flow] (出力フロー): [...]ボタンをクリックして、出力フローの名前を指定し、後でその出力フローのスキーマをダイアログボックスに設定します。<br><br>スキーマは必須ではないため、tRESTRequestコンポーネントに追加のパラメーターを渡す必要がない場合は、スキーマを空のままにしておくこともできます。ただし、[URI Pattern] (URIパターン)フィールドにURIパスのパラメーターを設定してある場合、または、[REST Endpoint] (RESTエンドポイント)フィールドで指定したURIに、URIクエリー、HTTPヘッダー、またはフォームパラメーターなど、オプションのリクエストパラメーターを追加する必要がある場合は、スキーマに入力する必要があります。<br><br>スキーマに名前*body*を追加し、POSTおよびPUTメソッドのリクエスト本文を取得します。[Document] (ドキュメント)、[String] (文字列)、および[Byte] (バイト)の型がサポートされています。<br><br>出力フロースキーマにURIパラメーターを指定すると、場合により、スキーマの[Comment] (コメント)フィールドにパラメーターの型を定義する必要があります。デフォルトでは、[Comment] (コメント)フィールドを空のままにすると、パラメーターはパスパラメーターと見なされます。以下は、サポートされている[Comment] (コメント)値のリストです。<br><br><ul> <li> <p>空白または<em>path</em>はデフォルトの@PathParamに対応します。 </p> </li> <li> <p> <em>query</em>は@QueryParamに対応します。                                     </p> </li> <li> <p> <em>form</em>は@FormParamに対応します。 </p> </li> <li> <p> <em>header</em>は@HeaderParamに対応します。</p> </li> <li> <p> <em>matrix</em>は@MatrixParamに対応します。</p> </li> <li> <p> <em>multipart</em>は、リクエスト本文を表すCXF固有の@Multipartに対応します。POSTおよびPUT HTTP方式でのみ使用できます。 </p> <div>たとえば、<em>number</em>というカラムを追加し、<span>[Comment] (コメント)</span>フィールドに<em>query</em>と入力して、リクエストの数字パラメーターを取得します。ヘッダーと同じ名前のカラムを追加し、<span>[Comment] (コメント)</span>フィールドに<em>header</em>と入力して、HTTPヘッダーをフェッチします。                                 <img src="https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/trestrequest_api_schema.png" alt=""> </div> <p><span>Column</span>カラムでは、API操作名に特殊文字(<span>-</span>や<span>$</span>など)を使用することはできません。この操作名は、生成されるコード内でJava識別子として使用されるためです。 </p> <p><span>Talend</span>が提供するR2022-02以降の<span>Talend Studio</span>マンスリーアップデートをインストール済みである場合は、<span>Comment</span>カラムのパラメータータイプの後に<span>(param-name)</span>と追加すれば、パラメーター名で任意の文字を使用できます。このメカニズムによって、データサービスにある<span>Talend API Designer</span>からAPIをインポートする際の失敗を回避できます。API Designerで特殊文字が使われている場合は、<span>Column</span>カラムでJavaに準拠した文字に置き換えられ、<span>Comment</span>カラムに実際のパラメーター名が追加されます。<span>Talend Studio</span>マンスリーアップデートの詳細は、管理者にお問い合わせください。 </p> <img src="https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/trestrequest_api_schema1.png" alt=""> </li> </ul><br><br>情報メモ注: オプションパラメーターのデフォルト値を設定することをお勧めします(ヘッダー、クエリー、フォーム)。そのためには、スキーマの[Default] (デフォルト)カラムに入力します。<br><br>HTTP Verb: HTTP方式(GET/POST/PUT/PATCH/DELETE/OPTIONS/HEAD)をリストから選択します。<br><br>[URI pattern] (URIパターン): リソースを説明するREST-ful URIをこのフィールドに入力します。<br><br>[Consumes] (コンシューム): HTTP方式がPOST、PUT、PATCHの場合は、コンポーネントが使用するコンシュームコンテンツの形式タイプを、[XML or JSON] (XMLまたはJSON)、XML、JSON、Form、Multipart、およびAnyの中から選択します。<br><br>[Produces] (プロデュース): HTTP方式がGET、POST、PUT、PATCH、またはDELETEの場合は、コンポーネントが使用するプロデュースコンテンツの形式タイプを、[XML or JSON] (XMLまたはJSON)、XML、JSON、HTML、およびAnyから選択するか、または&lt;oneway&gt;を選択して、1方向のリクエストを受け入れます。<br><br>[Streaming] (ストリーミング): 大量のデータを効率的に処理できるように、レスポンスデータをチャンク形式でストリーミングするには、このチェックボックスをオンにします。 |
| セキュリティ | 現在のサービスでセキュリティオプションを有効にするには、このチェックボックスをオンにします。次のいずれかのセキュリティスキームを選択します:<br><br><ul> <li> <span>[Basic HTTP] (Basic認証)</span>: HTTPヘッダーに標準フィールドを使用してWebリソースへのアクセス制御を強制する最も単純な手法です。</li> <li> <span>[JWT Bearer Token] (JWT Bearerトークン)</span>: JSON形式でデータを保存および交換することを目的とした、オープンかつ標準化された方法。 </li> <li> <span>[SAML Token] (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> |
| [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] (オーディエンス)も設定できます。 |
| Service Locatorを使用 | このチェックボックスをオンにすると、Service Locatorが有効になります。Service Locatorは、要求およびサービスレベル合意(SLA)を満たすよう、サービスの可用性を維持します。サービスネームスペースとサービス名をそれぞれのフィールドに指定します。 |
| [Use Service Activity Monitor] (サービスアクティビィティモニターの使用) | サービスアクティビティモニタリングを有効にするには、このチェックボックスをオンにします。このオプションにより、イベントがキャプチャーされ、それに関する情報が格納されて、サービスアクティビィティの詳細な分析とビジネストランザクションにおけるメッセージの追跡とトレースが行えます。これはサービス応答時間の分析、トラフィックパターンの特定、根本原因分析の実行などに使用できます。 |
| [Use Authorization] (認証サービスを使用) | このチェックボックスをオンにして、許可されたコールを有効にします。このオプションは、[Security] (セキュリティ)リストで[SAML Token] (SAMLトークン)が選択されている場合に表示されます。<br><br>ユーザーのロールと権限の管理については、[Managing ESB Resources and authorizations](https://help.qlik.com/talend/r/en-US/8.0/administration-center-user-guide/managing-esb-resources-and-authorizations)と[Talend Identity and Access Management](https://help.qlik.com/talend/r/en-US/8.0/esb-infra-services-configuration-guide/talend-identity-and-access-management)をご覧ください。 |
| [Use Business Correlation] (ビジネスコリレーションを使用) | コリレーションオプションを有効にするには、このチェックボックスをオンにします。それにより、連鎖型のサービスコールが同じコリレーションIDの下にまとめられます。tRESTRequestは、要求ヘッダーからコリレーションIDを抽出してコンポーネント変数に保管し、フローで引き続き使えるようにします。<br><br>このオプションがクライアントサイドで有効になっていない場合は、コリレーションIDがtRESTRequest内に自動的に生成されます。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [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 Runtime 8.0.1-R2025-10 パッチ以降をインストールし、ランタイム コンソール内でコマンドfeature:install cxf-rs-description-openapi-v3を実行する必要があります。詳細については、[Starting Talend Runtime with console](https://help.qlik.com/talend/en-US/esb-container-administration-guide/8.0/starting-talend-runtime-with-console) (英語のみ)および[Feature Scope](https://help.qlik.com/talend/en-US/esb-container-administration-guide/8.0/feature-scope) (英語のみ)を参照してください。 |
| [Wrap JSON Request] (JSONリクエストをラップ) | JSONリクエストを*root*エレメントでラップするには、このチェックボックスをオンにします。 |
| [Attributes to Elements] (属性からエレメントに) | レスポンス属性にある@を除外する場合はこのチェックボックスをオンにします。 |
| [Convert JSON values to String in response] (レスポンスのJSON値を文字列に変換) | レスポンスのJSON値を文字列形式に変換するには、このチェックボックスをオンにします。 |
| [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)をご覧ください。 |
| [Service Locator Customer properties] (Service Locatorの顧客プロパティ) | このオプションは、[Basic settings] (基本設定)タブで[Use Service Locator] (Service Locatorを使用)が有効である場合に表示されます。[+]をクリックして、テーブルに必要なだけのプロパティを追加します。[Property Name] (プロパティ名)フィールドおよび[Property Value] (プロパティ値)フィールドにプロパティの名前と値をそれぞれ入力して、サービスを特定します。 |
| [Service Activity Customer Properties] (サービスアクティビティの顧客プロパティ) | このオプションは、[Basic settings] (基本設定)タブで[Use Service Activity Monitor] (サービスアクティビティモニタリングの使用)が有効である場合に表示されます。[+]をクリックして、テーブルに必要なだけのプロパティを追加します。[Property Name] (プロパティ名)フィールドおよび[Property Value] (プロパティ値)フィールドにプロパティの名前と値をそれぞれ入力して、サービスを特定します。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、ジョブレベルやコンポーネントレベルでジョブ処理メタデータが収集されます。 |

## グローバル変数

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | NB\_LINE: 処理された行の数。これはAfter変数で、整数を返します。<br><br>URI: RESTリクエストのURI。これはFlow変数で、文字列を返します。<br><br>URI\_BASE: RESTリクエストのベースURI。これはFlow変数で、文字列を返します。<br><br>URI\_ABSOLUTE: RESTリクエストの絶対URI。これはFlow変数で、文字列を返します。<br><br>HTTP\_METHOD: http方式。これはFlow変数で、文字列を返します。<br><br>ATTACHMENT\_HEADERS: RESTリクエストからの添付ヘッダー。これはFlow変数で、添付ヘッダー値のリストを返します。<br><br>ATTACHMENT\_FILENAMES: RESTリクエストからの添付ファイル名。これはFlow変数で、すべての添付ファイル名を返します。<br><br>PRINCIPAL\_NAME: RESTリクエストのプリンシパル名。これはFlow変数で、文字列を返します。<br><br>CORRELATION\_ID: チェーンされたサービス呼び出しがグルーピングされるコリレーションID。これはFlow変数で、文字列を返します。<br><br>ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、Talendジョブがサービスとしてラップされ、サービスへのリクエストをジョブに入力し、ジョブ結果をサービス応答として返すことができる可能性を担います。<br><br>要求-応答の通信スタイルの場合、ジョブの結果を応答として返すには、tRESTRequestコンポーネントをtRESTResponseコンポーネントと一緒に使用する必要があります。 |
| 制限事項 | コンテキスト変数をダイナミックエンドポイントやService Locatorのネームスペースに利用できるのは、Talend Studio内のみです。 Talend Runtimeではサポートされていません。 |

**関連概念**

* [HTTP POSTリクエストを受け入れてレスポンスを送信するRESTサービスの使用](https://help.qlik.com/talend/ja-JP/components/8.0/esb-rest/trestrequest-trestclient-tlogrow-using-rest-service-to-accept-http-post-requests-and-send-responses-standard-component-esb-this)
* [HTTP POSTリクエストをHTML形式で受け入れるRESTサービスの使用](https://help.qlik.com/talend/ja-JP/components/8.0/esb-rest/trestrequest-trestresponse-txmlmap-tjavarow-using-rest-service-to-accept-http-post-requests-in-html-form-standard-component-esb-this)
* [HTTP POSTリクエストを受け入れるRESTサービスを使用する](https://help.qlik.com/talend/ja-JP/components/8.0/esb-rest/use-rest-accept-http-post)
* [HTTP GETリクエストを受け入れてレスポンスを送信するRESTサービスの使用](https://help.qlik.com/talend/ja-JP/components/8.0/esb-rest/trestrequest-trestresponse-txmlmap-trestresponse-txmlmap-using-rest-service-to-accept-http-get-requests-and-send-responses-standard-component-esb-this)
* [URIクエリーパラメーターを使用してデータベースのデータを探査する](https://help.qlik.com/talend/ja-JP/components/8.0/esb-rest/trestrequest-trestresponse-tfixedflowinput-tmysqloutput-using-uri-query-parameters-to-explore-data-of-database-standard-component-esb-this)