メイン コンテンツをスキップする 補完的コンテンツへスキップ

tHTTPClientの標準プロパティ

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

標準tHTTPClientコンポーネントは、インターネットファミリーに属しています。

このフレームワーク内のコンポーネントは、すべてのサブスクリプションベースのTalend製品で使用できます。

情報メモ注:
  • このコンポーネントは、Talendが提供する8.0.1-R2023-05以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。
  • 現時点では、tRESTClientコンポーネントよりもtHTTPClientコンポーネントの使用をお勧めします。

基本設定

[Property type] (プロパティタイプ) [Built-in] (組み込み)[Repository] (リポジトリー)のいずれかです。
  • [Built-In] (組み込み): 一元的に保存されるプロパティデータはありません。
  • [Repository] (リポジトリー): プロパティが保管されるリポジトリーファイルを選択します。後続フィールドは、取得されたデータを使用して自動的に入力されます。
[Guess Schema] (推測スキーマ) このボタンをクリックすると、設定に応じたスキーマを取得できます。このボタンは、[Returned content] (返されたコンテンツ)ドロップダウンリストで[Status, headers and body] (ステータス、ヘッダー、ボディ)が選択されている場合か、[Output key/value pairs] (出力キー/値のペア)が選択され、その[Output key/value pairs] (出力キー/値のペア)オプションでキー/値のペアがテーブルに設定されている場合に動作します。

HTTPサーバーからデータを取得する場合は、スキーマ、[Guess schema] (推測スキーマ)ボタン、[Response body format] (レスポンスボディ形式)オプション、[Returned content] (返されたコンテンツ)オプション、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプション、[Output key/value pairs] (出力キー/値のペア)オプションを使い、取得するデータの形式とコンテンツを指定できます。詳細は、tHTTPClient: 設定と出力をご覧ください。

情報メモ注: [Returned content] (返されたコンテンツ)ドロップダウンリストで[Body] (ボディ)が選択され、[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONが選択されている状態でこのボタンをクリックすると、エラーが発生します。これは、このコンポーネントが、入力された設定のみに従ってスキーマを生成し、HTTPクエリーの実行によってデータを消費したりアップデートしたりすることがないようにデザインされているためです。
[Schema] (スキーマ)および[Edit schema] (スキーマを編集) スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは[Built-in] (組み込み)か、[Repository] (リポジトリー)にリモートで保存されます。
  • [Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。

  • [Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保存されており、さまざまなプロジェクトやジョブデザインで再利用できます。[Basic settings] (基本設定)タブにあるコンポーネントスキーマの詳細は、[Basic settings] (基本設定)をご覧ください。

このコンポーネントは、コンポーネントの関連設定に応じてスキーマを自動的に生成します。ただし、[Returned content] (返されたコンテンツ)ドロップダウンリストで[Body] (ボディ)を、[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONを選択した場合は、スキーマを手動で定義する必要があります。この場合、最初のレベルの属性ごとにカラムを追加し、ネスト済みJSONオブジェクトを持つ属性ではカラムタイプをStringに設定する必要があります。

以下はその例です。[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONを選択し、[Returned content] (返されたコンテンツ)ドロップダウンリストで[Body] (ボディ)を選択した場合、スキーマには、レスポンスにある次のJSONオブジェクトのaddressノードのコンテンツを保有しているString型のカラムが必要です。
{
    "id": 1,
    "name": "Talend",
    "address": {
       "city": "San Mateo",
       "state": "California",
       "zipcode": "94402"
    }
}

スキーマには、id (Int型)、name (String型)、address (String型)というカラムを追加する必要があります。追加後、このコンポーネントはinput.address.zipcodeのようにData Shaping Selector Language (DSSL)を使ってaddressカラムからzipcodeを抽出できます。

デフォルトで、スキーマのカラムは[Response body format] (レスポンスボディ形式)オプションと[Returned content] (返されたコンテンツ)オプションの設定に応じて次のようになります。

  • [Returned content] (返されたコンテンツ)ドロップダウンリストで[Status, headers, and body] (ステータス、ヘッダー、ボディ)エントリーが選択された場合、スキーマにはbody (String型)、headers (String型)、status (Int型)という3つのカラムが含まれます。
  • [Returned content] (返されたコンテンツ)ドロップダウンリストで[Body] (ボディ)エントリーが選択され、[Response body format] (レスポンスボディ形式)ドロップダウンリストでTEXTが選択された場合、スキーマにはbody (String型)というカラムが1つ含まれます。

HTTPサーバーからデータを取得する場合は、スキーマ、[Guess schema] (推測スキーマ)ボタン、[Response body format] (レスポンスボディ形式)オプション、[Returned content] (返されたコンテンツ)オプション、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプション、[Output key/value pairs] (出力キー/値のペア)オプションを使い、取得するデータの形式とコンテンツを指定できます。詳細は、tHTTPClient: 設定と出力をご覧ください。

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマを表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。

    変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

[Sync columns] (カラムを同期) このボタンをクリックすると、先行コンポーネントからスキーマを取得できます。
[Base URL] (ベースURL) アクセスしたいHTTPサーバーのベースURLアドレス(https://www.example.com/v1.0/など)を入力します。HTTPサーバーによって提供されるWebサービスにアクセスするためには、ベースURLのアドレスとパスの両方を入力する必要があります。パスは[Path] (パス)フィールドに入力します。

また、Data Shaping Selector Language構文を使ってプレースホルダーを定義すると、受信レコードから抽出された値で一部が動的に入力されます。例:

ベースURL = "https://{.input.job_url}"、およびパス = "{.input.job_url_path}"

[Authentication type] (認証タイプ)

サーバーのセキュリティ要件に応じて、次のいずれかの認証方法を選択します。
  • [No authentication] (認証なし): サーバーへのアクセスで認証が必要とされない場合
  • [Basic] (基本): ユーザー名とパスワードが求められます。詳細は、RFC 2617をご覧ください。
  • [Digest] (ダイジェスト): ユーザー名とパスワードが求められます。詳細は、RFC 2617をご覧ください。
  • [Bearer token] (ベアラートークン): 生のアクセストークンが求められます。これは、Authorization: Bearer <your token>としてHTTPリクエストヘッダーに入力されます。
  • NTLM: ユーザー名(ドメイン名を含む場合あり)とパスワードが求められます。詳細は、NT LAN Manager (NTLM) Authentication Protocolをご覧ください。
  • [API key] (APIキー): 渡す場所、名前、プレフィックスを選択できるなど、柔軟な方法でAPIキートークンをサーバーに渡します。
    • [Destination] (デスティネーション): トークンを設定する場所として、指定された名前を持つHTTPヘッダー、または指定された名前を持つHTTPクエリパラメーター(トークンがログに残る可能性があるため推奨しません)を指定します。
    • [Name] (名前): ヘッダーまたはクエリーパラメーターの名前を入力します。
    • [Prefix] (プレフィックス) (オプション): トークンの前に追加するプレフィックスを入力します([Destination] (デスティネーション)[Request header] (リクエストヘッダー)である場合のみ)。
    • [Token] (トークン): 認証トークンを入力します。
  • OAuth 2.0 は、OAuthサーバーに対するアクセストークンの取得とアップデートを自動的に管理した後、ベアラートークンとしてターゲットエンドポイントに渡します。
    • [Flow] (フロー): 実行したいOAuthフローです。現在のところ、サポートされているのは[Client Credentials] (クライアント認証情報)フローのみです。
    • [Authentication mode] (認証モード): サポートされているどの認証方式についても、フローとスコープのパラメーターがボディで設定されます。使用する形式はapplication/x-www-form-urlencodedで、キーはgrant_type=xxx&scope=xxxxとなります。
    • [Token endpoint] (トークンエンドポイント): oauth2/mydomain.com/tokenという形式で認証トークンを入力します。
    • [Client ID] (クライアントID)[Client secret] (クライアントシークレット): クライアントIDとクライアントシークレットを入力します。
    • [Additional parameters] (追加パラメーター): 追加したい属性(たとえばscope)を入力します。
情報メモ注: パスワード、トークン、クライアントシークレットキーを入力するためには、該当するフィールドの横にある[...]ボタンをクリックし、[Enter a new password] (新しいパスワードを入力)ダイアログボックスを表示させ、テキストフィールドにパスワード、トークン、シークレットのいずれかを入力してOKをクリックします。[pure password] (純粋なパスワード)モードであればJSON文字列を、JavaモードであればJava式を入力できます。テキストフィールドの上部にある[switch to Java mode] (Javaモードに切り替え)または[switch to pure password mode] (純粋なパスワードに切り替え)をクリックすることで、2つのモードの間で切り替えられます。
[HTTP method] (HTTPメソッド) 実行するアクションを指定するには、HTTPメソッドとしてGETPOSTHEADOPTIONSPUTPATCHDELETETRACEのいずれかを選択します。

HTTPメソッドを選択するためには、このフィールドの横にある[...]ボタンをクリックし、表示されるダイアログボックスで目的のHTTPメソッドを選択します。

[Path] (パス) URLの2番目の部分を入力し、[Base URL] (ベースURL)フィールドのベースURLを完成させます。ベースURLとパスは、必要であれば/という文字で結合されます。たとえばhttps://jira.talendforge.org/rest/api/2/というURLのサーバーからデータを検索するためには、このフィールドにsearchと入力します。

関連情報は[Base URL] (ベースURL)フィールドの説明をご参照ください。

また、Data Shaping Selector Language構文を使ってプレースホルダーを定義すると、受信レコードから抽出された値で一部が動的に入力されます。例:

ベースURL = "https://{.input.job_url}"、およびパス = "{.input.job_url_path}"

[Path parameters] (パスパラメーター) このチェックボックスを選択すると、ベースURLやパスを完成させるために必要な追加パラメーターを名前と値のペアの形式で指定できます。

ベースURLやパスにプレースホルダーが含まれている場合は、このテーブルにパラメーターを追加し、次の方法でそのパラメーターに名前と値を設定すれば、そのプレースホルダーを置き換えることができます。

  • [Name] (名前): 置換するプレースホルダーの名前を入力します。

  • [Value] (値): プレースホルダーの代わりに置換したい値を入力します。静的値(contactEntityなど)、受信レコードからの抽出値({.input.entity.id}など)、両方の混合値(version{.input.api.version}など)のいずれか

たとえばベースURLがhttps://www.example.comでパスが/{api_version}であれば、このテーブルにパラメーターを追加し、[Name] (名前)api_versionに、[Value] (値)v1.0にすることでパスを設定できます。

クエリーパラメーター このオプションを選択すると、name=valueの形式で?という文字の後にクエリーURLで設定されるパラメーターを指定できます。これらの値は自動的にエンコードされています。
  • [Name] (名前): パラメーターの名前を入力します。
  • [Value] (値): パラメーターの値を入力します。静的値(UUID-1234567など)、受信レコードからの抽出値({.input.user.id}など)、両方の混合値(UUID-{.input.user.id}など)のいずれか

例: クエリーパラメーター名 = entityId、およびクエリーパラメーター値 = UUID-1234567

[Request headers] (リクエストヘッダー) このオプションを選択すると、一部のHTTPリクエストヘッダーを名前-値ペアとして定義できます。各ヘッダーは、メインのHTTPクエリー(Main)、認証クエリー(AuthenticationOAuth 2.0認証でのみ利用可能)、両方のクエリー(Both)の一部となるように定義できます。
  • [Name] (名前): ヘッダーの名前を入力します。
  • [Value] (値): ヘッダーの値を入力します。静的値(text/html;charset=utf-8など)、受信レコードからの抽出値({.input.meta.content}など)、両方の混合値(text/{.input.document.format};charset={.input.document.charset}など)のいずれか

    AUTHENT値を持つヘッダーはOAuth 2.0認証クエリーでのみ送信が可能である点に注意が必要です。

  • [Query] (クエリー): このヘッダー設定を適用するクエリーを選択します。

例: ヘッダー名 = Content-Type、およびヘッダー値 = text/html;charset=utf-8

[Request body] (リクエストボディ) リクエストにメッセージボディを含めたい場合は、このオプションを選択します。
[Body type] (ボディタイプ) ドロップダウンリストで該当するオプションを選択し、ボディタイプを設定するために使われます。
  • [Text] (テキスト): ドロップダウンリストの下にあるテキストフレームに、メッセージのボディをプレーンテキストで入力します。Data Shaping Selector Language構文を使ってプレースホルダーを定義すると、受信レコードから抽出された値で一部が動的に入力されます。例:
    id={.input.user.id}
    name={.input.user.name}
  • JSON: ドロップダウンリストの下にあるテキストフレームに、メッセージのボディをJSON形式で入力します。Data Shaping Selector Language構文を使ってプレースホルダーを定義すると、受信レコードから抽出された値で一部が動的に入力されます。例:
    {
     "id": "{.input.user.id}",
     "name": "{.input.user.name}",
     "age": "{.input.user.age}",
     }
  • XML: ドロップダウンリストの下にあるテキストフレームに、メッセージのボディをXML形式で入力します。Data Shaping Selector Language構文を使ってプレースホルダーを定義すると、受信レコードから抽出された値で一部が動的に入力されます。例:
    <user>
     <id>{.input.user.id}</id>
     <name>{.input.user.name}</name>
     <age>{.input.user.age}</age>
    </user>
  • [Form data] (フォームデータ)x_www_urlencoded: 属性名と値のペアを持つマルチパートフォーム、または属性名と値のペアを持つURLエンコードフォームを使ってボディを作成します。ドロップダウンリストの下にあるテーブルの行に、属性の名前と値を入力します。Data Shaping Selector Language構文を使ってプレースホルダーを定義すると、受信レコードから抽出された値で一部が動的に入力されます。

[Body type] (ボディタイプ)ドロップダウンリストは、[Request body] (リクエストぼでし)オプションを選択した場合に利用できます。

[Response body format] (レスポンスボディ形式) ドロップダウンリストでレスポンスボディ形式を選択します。正しい形式を選択すれば、コネクターは返されたレコードを解析し、そのレコードに操作を適用できるようになります。現時点では、テキスト形式とJSON形式がサポートされています。
  • [Text] (テキスト): プレーンテキストのメッセージを返す場合はこの形式を選択します。この場合、レスポンスペイロードは解析されず、そこからサブ部分を抽出できなくなります。
  • JSON: 受信したレスポンスがJSON形式の場合はこの形式を選択します。その場合、ペイロードは正しく解析されたJSONレコードに変換されます。

HTTPサーバーからデータを取得する場合は、スキーマ、[Guess schema] (推測スキーマ)ボタン、[Response body format] (レスポンスボディ形式)オプション、[Returned content] (返されたコンテンツ)オプション、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプション、[Output key/value pairs] (出力キー/値のペア)オプションを使い、取得するデータの形式とコンテンツを指定できます。詳細は、tHTTPClient: 設定と出力をご覧ください。

[Returned content] (返されたコンテンツ) サーバーから返されるデータに応じて、次のいずれかのオプションを選択します。
  • [Body] (ボディ): [Response body format] (レスポンスボディ形式)ドロップダウンリストで[Text] (テキスト)が選択された場合、bodyという文字列属性を1つだけ持つレコードが生成され、その中にペイロードがすべてコピーされます。[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONが選択された場合は、解析済みドキュメントの階層ストラクチャーを表すレコードが生成されます。

  • [Status, headers and body] (ステータス、ヘッダー、ボディ): レコードの生成は、HTTPステータスコードが含まれているstatus属性(INT型)、すべてのレスポンスヘッダーがネスト済みレコードであるheaders属性、ペイロード全体がテキストとして含まれている単純文字列([Reponse body format] (レスポンスボディ形式)ドロップダウンリストからTextが選択された場合)、または解析済みドキュメントを表す階層型オブジェクト([Reponse body format] (レスポンスボディ形式)ドロップダウンリストでJSONが選択された場合)であるbody属性で行われます。

HTTPサーバーからデータを取得する場合は、スキーマ、[Guess schema] (推測スキーマ)ボタン、[Response body format] (レスポンスボディ形式)オプション、[Returned content] (返されたコンテンツ)オプション、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプション、[Output key/value pairs] (出力キー/値のペア)オプションを使い、取得するデータの形式とコンテンツを指定できます。詳細は、tHTTPClient: 設定と出力をご覧ください。

情報メモ注: このオプションは、このコンポーネントの出力フローのスキーマに影響します。このドロップダウンリストで項目を選択した後、[Guess schema] (推測スキーマ)ボタンをクリックしてスキーマをアップデートすることをお勧めします。
[Extract a sub-part of the JSON] (JSONのサブ部分を抽出) ノードのパスを入力して、レスポンスのサブエレメントを選択します。エレメントが配列である場合は、その配列の各エレメントがループされます。ノード名を入力するための構文の詳細は、Data Shaping Selector Language構文をご覧ください。

このフィールドはオプションであり、JSONレスポンス全体を取得するためには空のままにしておく必要があります。

次のJSONドキュメントの例:
{
   "description": "List of some famous geologists",
   "content_length": 5,
   "author": "A. Smith",
   "content":[
      {
         "name":"Maurice Krafft",
         "age":35,
         "female":false,
         "address":{
            "city":"Mulhouse",
            "zipcode":68100
         }
      },
      {
         "name":"Katia Krafft",
         "age":49,
         "female":true,
         "address":{
            "city":"Soultz-Haut-Rhin",
            "zipcode":6860
         }
      },
      {
         "name":"Pline l'Ancien",
         "age":55,
         "female":false,
         "address":{
            "city":"Côme",
            "zipcode":22100
         }
      },
      {
         "name":"James Hutton",
         "age":70,
         "female":false,
         "address":{
            "city":"Édimbourg",
            "zipcode":0
         }
      },
      {
         "name":"Aline Peltier",
         "age":40,
         "female":false,
         "address":{
            "city":"Saint-Pierre",
            "zipcode":97410
         }
      }
   ]
}
地質学者をすべてループし、各地質学者のレコードを生成するためには、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出).contentと入力します。また、フィルターを追加してレコードのサブセットのみを取得することもできます。たとえば[Extract a sub-part of the JSON] (JSONのサブ部分を抽出).content{.age>40}と入力すると、40歳を超える地質学者の情報を取り出すことができ、次の情報が返されます。
{"name":"Katia Krafft","age":49.0,"female":true, ...
{"name":"Pline l'Ancien","age":55.0,"female":false, ...
{"name":"James Hutton","age":70.0,"female":false, ...
40歳を超える地質学者の都市を取り出すためには、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出).content{.age > 40}.address.cityと入力します。次の情報が返されます。
|=-----------------=|
|field              |
|=-----------------=|
|Soultz-Haut-Rhin   |
|Côme               |
|Édimbourg          |
'-------------------'
セレクターのペイロードに値が1つしかない場合、その値はfieldという名前になります。

HTTPサーバーからデータを取得する場合は、スキーマ、[Guess schema] (推測スキーマ)ボタン、[Response body format] (レスポンスボディ形式)オプション、[Returned content] (返されたコンテンツ)オプション、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプション、[Output key/value pairs] (出力キー/値のペア)オプションを使い、取得するデータの形式とコンテンツを指定できます。詳細は、tHTTPClient: 設定と出力をご覧ください。

このフィールドは、[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONを選択した場合に利用できます。

情報メモ注: このフィールドは、このコンポーネントの出力フローのスキーマに影響します。このフィールドを設定した後、[Guess schema] (推測スキーマ)ボタンをクリックしてスキーマをアップデートすることをお勧めします。
[Output key/value pairs] (出力キー/値のペア) このオプションを選択すると、HTTPレスポンスの生のボディの代わりにキーと値のペアが返されます。ノードの値を入力するためには、テーブルの下にあるプラスボタンをクリックして行を追加し、[Name] (名前)フィールドにノードの名前を、[Value] (値)フィールドに値をそれぞれ入力します。

値はコンポーネントの入力値かHTTPレスポンスから選択できます。値がコンポーネント入力からの場合は[Value] (値)"{.input.<dssl_path>}"と、HTTPレスポンスの場合は"{.response.<dssl_path>}"と入力します。

[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプションの例では、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)フィールドに.contentと入力し、テーブル内に次の2つのキーと値のペアを追加すれば地質学者の名前と都市の値を取得できます。
  • "Name":"{response.name}"
  • "City": "{response.address.city}"

HTTPサーバーからデータを取得する場合は、スキーマ、[Guess schema] (推測スキーマ)ボタン、[Response body format] (レスポンスボディ形式)オプション、[Returned content] (返されたコンテンツ)オプション、[Extract a sub-part of the JSON] (JSONのサブ部分を抽出)オプション、[Output key/value pairs] (出力キー/値のペア)オプションを使い、取得するデータの形式とコンテンツを指定できます。詳細は、tHTTPClient: 設定と出力をご覧ください。

情報メモ注: このオプションは、このコンポーネントの出力フローのスキーマに影響します。このオプションを使ってテーブルでキー/値のペアを設定した後、[Guess schema] (推測スキーマ)ボタンをクリックしてスキーマをアップデートすることをお勧めします。
[Forward input values] (入力値を転送) このオプションを選択すると、コンポーネント入力から受け取った値を後続のコンポーネントに渡すことができます。

このオプションは、[Output key/value pairs] (出力キー/値のペア)が選択されている場合に利用できます。

[Download attachments] (添付ファイルをダウンロード) このオプションを選択すると、指定されたディレクトリーにレスポンスの添付ファイルがファイルとして保存されます。[Directory to save] (保存先ディレクトリー)フィールドに、ディレクトリーへのパスを入力する必要があります。指定されたディレクトリーが存在しない場合は、コンポーネントによって作成されます。指定されたディレクトリーに対して書き込み権限があることを確認してください。

添付ファイル付きのMIMEマルチパートレスポンスでは、ボディにある添付ファイルでない最初の部分が出力レコードボディとして扱われます。添付ファイル部分はContent-Disposition=attachment;...というヘッダーでマークされ、添付ファイル名はその`name=...`値から取得されます。ヘッダーメタデータにnameフィールドが提供されていない場合、そのファイルにはサービス名(つまりPath値)を使って命名されます。Content-Disposition=attachmentヘッダーを持つパートがない場合、マルチパートの最初のパートは出力レコードのボディとして扱われ、その他のパートは添付ファイルとして扱われます。

バイナリファイルの場合、tHTTPClientコンポーネントはHTTPレスポンスボディをそのままファイルに保存します。Content-Dispositionヘッダーに名前が指定されていない場合、結果ファイルの名前はリソース名に_0というサフィックスを付けたものになります。

情報メモ注: このオプションは、Talendが提供する8.0.1 R2023-05以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。

詳細設定

[tStatCatcher Statistics] (tStatCatcher統計) ジョブレベルおよび各コンポーネントレベルでジョブ処理メタデータを収集するには、このチェックボックスを選択します。
[Connection timeout (ms)] (接続タイムアウト(ミリ秒)) コネクターがサーバーへの接続を確立するまでのタイムアウト期間(ミリ秒)を設定するために使われます。接続の確立に失敗した場合はエラーが発生します。
[Receive timeout (ms)] (受信タイムアウト(ミリ秒)) レスポンスデータ受信のタイムアウト期間(ミリ秒)を設定するために使われます。読み取りタイムアウト期間が経過してもデータが受信されない場合は、エラーが発生します。
[Bypass server certificate validation] (サーバー証明書の検証をバイパス) このオプションを選択すると、クライアントにサーバー証明書を検証させないようにできます。

このオプションは本番環境ではお勧めしません。

プロキシを使用 このオプションを選択すると、HTTPやSOCKSプロキシを使用できます。
  • [Proxy type] (プロキシタイプ): 使用したいプロキシのタイプとして、HTTPまたはSOCKSを選択します。HTTPプロキシでは基本認証がサポートされています。
  • [Proxy host] (プロキシホスト)[Proxy port] (プロキシポート): プロキシのアドレスとポートを入力します。
  • [Proxy login] (プロキシログイン)[Proxy password] (プロキシパスワード): プロキシへの認証に必要な認証情報を入力します。これら2つのフィールドは、[Proxy type] (プロキシタイプ)ドロップダウンリストでHTTPが選択されている場合に利用できます。
[Retry with exponential backoff] (指数バックオフを使用して再試行) このオプションを選択すると、失敗したHTTPコールを自動的に再試行します。選択されると、HTTPコールは、接続エラーやタイムアウトがある場合に、またはHTTPステータスコードが400以上の場合に再試行されますが、認証エラーである401/403/511エラーは再試行されません。
  • [Initial backoff (ms)] (初期バックオフ(ミリ秒)): HTTPコールの最初の再試行までの待機時間をミリ秒単位で入力します。
  • [Backoff factor] (バックオフ係数): 試行が失敗した場合、各コール間の遅延を増加させるため、待機時間にはこの係数が掛け合わされます。係数が1の場合、遅延はすべて同じ値になります。
  • [Maximum number of retries] (最大再試行回数): 1つのHTTPクエリーの最大試行回数を入力します。初回コールはこの数字に含めないようにしてください。

次の設定の例:

初回バックオフ: 300ミリ秒、バックオフ係数: 2、最大試行回数: 4

HTTPClientコンポーネントはサーバーに対して最初のGET操作(第1コール)を行います。接続タイムアウトエラーが返され、再試行メカニズムが作動し、コンポーネントは300ミリ秒待機します。その後、2回目(第1再試行)が行われます。503HTTPレスポンスが返されると、待機時間が2倍になり、コンポーネントは600ミリ秒待機します。その後、3回目(第2再試行)が行われます。500内部サーバーエラーが返されると、待機時間がさらに2倍になり、コンポーネントは1200ミリ秒待機します。4回目(第3再試行)が行われ、今回は成功します。追加試行は行われず、レスポンスが返されます。

[Accept redirections] (リダイレクトを受け入れ) このオプションを選択すると、リソースでHTTPリダイレクトのルールを適用できます。
  • [Maximum number of redirects] (最大リダイレクト数): コネクターが従う最大リダイレクト数を設定するために使われます。設定した数を超えるリダイレクトがある場合は、最後のリダイレクトがクエリーの結果として返されます。
  • [Redirect only on same host] (同じホストでのみリダイレクト): 同じホストを使用している場合のみリダイレクトを実行したい場合は、このオプションを有効にします。
[Pagination] (ページネーション) ページネーション方式を有効にするためには、このオプションを選択します。ページネーション戦略の詳細は、JIRA Server platform REST API referencePaginationセクションをご覧ください。

なお、ページネーションはJSONペイロードとのみ互換性があります。目的のエレメントはJSONペイロード内の配列であることが必要です。

ページネーションを正しく動作させるためには、次のオプションを設定する必要があります。

  • [Preset] (事前設定): ページネーション方式をサポートする特定のサービスについて、該当するサービスを選択して事前設定を行います。サービスを選択するためには、このフィールドの横にある[...]ボタンをクリックしてサービスを選択します。選択できるサービスは次のとおりです。
  • [Load selected preset] (選択された事前設定をロード): このボタンをクリックすると、[Preset] (事前設定)フィールドで選択された事前設定がロードされます。
  • [Pagination strategy] (ページネーション方式): 使用するページネーション方式を選択します。現在のところ、使用できるのは[Offset/limit] (オフセット/制限)ストラテジーのみです。[Offset/limit] (オフセット/制限)ストラテジーは、特定サイズのページの特定の位置から始まるエレメントを取得します。offsetパラメーターは最初のエレメントからのオフセットによって開始エレメントを指定します。limitパラメーターは、エレメントの数によってページの最大サイズを指定します。[Pagination strategy] (ページネーション方式)を適用した場合、最後の呼び出しで0個のエレメントが返されるとクエリーが停止します。
  • [Location] (ロケーション): オフセットパラメーターと制限パラメーターの設定方法を指定します。[Query parameters] (クエリーパラメーター)[In headers] (ヘッダー内)のいずれかとなります。
  • [Name of the offset] (オフセットの名前): オフセットとして使われるパラメーターの名前を設定するために使われます。
  • [Value of the offset] (オフセットの値): オフセットを設定するために使われます。最初のエレメントから開始する場合は、0に設定します。'{.input.last_page_info.offset}'というDSSL式を使えば、受信レコードからクエリーのオフセットを取得できます。
  • [Name of the limit] (制限の名前): ページ内で許可されているエレメントの最大数を定義するパラメーターの名前を設定するために使われます。
  • [Value of the limit] (制限の値): 制限値、つまりページ内で返されるエレメントの最大数を設定するために使われます。ページが返される時のエレメントが0個の場合、ページネーションは停止します。
  • [Path to elements] (エレメントへのパス): 目的のエレメントが含まれているJSON配列へのパスを設定するために使われます。これはJSON配列であることが必要です。offset/limit方式が適用された場合、[Extract a sub-part of the response] (レスポンスのサブ部分を抽出)オプションの設定にかかわらず、このパラメーターで指定されたエレメントがルートになります。たとえば[Preset] (事前設定)フィールドでJIRAが選択された状態で[Path to elements] (エレメントへのパス).issueに設定した場合、問題に存在するエレメントの属性をkeyと仮定すると、[Extract a sub-part of the response] (レスポンスのサブ部分を抽出).keyに設定されていても問題が取得されます。
情報メモ注: [Pagination] (ページネーション)オプションは、Talendが提供する8.0.1 R2023-05以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。
[Normalize the JSON HTTP response] (JSON HTTPレスポンスを正規化) このオプションを選択すると、JSONペイロードの不整合が正規化され、コンポーネントがこれらのドキュメントを正しく解析できるようになります:
  • [Normalize attributes] (属性を正規化): 期待されているデータ型に値を変換できます。
  • [Normalize arrays] (配列を正規化): JSON配列の一部のエレメントでフィルタリングできます。

    例:

    このJSONドキュメントを取得するようコンポーネントを設定した場合、これらのJSONの不一致がジョブ実行コンソールに返されます:
    Some JSON inconsistencies has been identified:
    .users.*.addresses is not consistently present in all objects.
    .users.*.active is not consistently present in all objects.
    .users.*.email is not consistently present in all objects.
    .users.*.addresses is an array that contains items of several types: STRING, OBJECT.
    .users.*.addresses.*.country is not consistently present in all objects.
    .users.*.addresses.*.street is not consistently present in all objects.
    .users.*.addresses.*.zipcode is found with varying types: STRING, INT.
    Please, have a look to advanced settings JSON normalization to fix it.

    これを防ぐためには、たとえば[Normalize attributes] (属性を正規化)オプションを使い、たとえ返される値がString型であっても.、.users.*.addressesというパスを持つ属性をARRAY型に、users.*.addresses.*.zipcodeというパスを持つ属性をINT型にそれぞれキャストします。また、.users.*.activeのように、不足している属性も追加できます(ここでは'true'か'false'のいずれかを返すのでBOOLEANとしてキャスト可能)。

    さらに配列の正規化オプションを使い、アドレスにString型も含まれている場合でも、.users.*.addressesOBJECTエレメントのみを保持させることもできます。

このオプションは、コンポーネントの[Basic settings] (基本設定)ビューの[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONが選択された場合に利用できます。

[Add attachments] (添付ファイルを追加) ファイルを添付ファイルとしてマルチパートリクエストに追加する場合は、このオプションを選択します。このオプションを選択すると[Files to upload] (アップロードするファイル)テーブルが表示され、次のパラメーターを設定できるようになります。
  • [Content type] (コンテンツタイプ): HTTPによって定義されているファイルのコンテンツタイプを設定するために使われます。関連情報は、https://www.w3.org/Protocols/rfc1341/4_Content-Type.htmlをご覧ください。
  • [Encoding] (エンコーディング): ファイルのエンコーディングを設定するために使われます。
  • [Path to file] (ファイルへのパス): アップロードするファイルへのパスを、ファイル名を含めて入力します。
  • [Attachment name] (添付ファイル名): 添付ファイルのHTTP形式によるIDを設定するために使われます。

[Add attachments] (添付ファイルを追加)オプションは、[Request body] (リクエストボディ)オプションを選択し、[Basic settings] (基本設定)ビューにある[Body type] (ボディタイプ)ドロップダウンリストで[Form data] (フォームデータ)を選択した場合に利用できます。

情報メモ注: このオプションは、Talendが提供する8.0.1 R2023-05以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。
[Force JSON numbers to "Double" type in response body] (レスポンスボディでJSON数値を倍数型に強制) すべてのJSON数値を強制的にDouble型に変換したい場合は、このオプションを選択します。JSONでは、Integer型の数字とDouble型の数字を区別することは必ずしも可能ではありません。

たとえばDouble型しか含まないはずの地理的位置マトリクスで、項目の1つがInteger型の[47, -1.567075]として推測されてしまうことがあります。これは、コネクターがまずInteger配列を生成しようとし、次にその中にDouble型を追加しようとするため、エラーが発生しやすくなることが原因です。すべての数値を強制的にDouble型にすれば、そのようなエラーを防ぐことができます。

このオプションは、[Basic settings] (基本設定)ビューの[Response body format] (レスポンスボディ形式)ドロップダウンリストでJSONが選択された場合に利用できます。

[Die on error] (エラー発生時に強制終了) レスポンスのステータスコードが2xx以外の時にジョブの実行を停止する場合は、このオプションを選択します。

グローバル変数

グローバル変数

ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。

NB_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。

使用方法

使用ルール このコンポーネントは、データフローの中間ステップとして、またはジョブフローチャートの終了オブジェクトとして使用できます。
制限事項 このコンポーネントは、tRESTRequestコンポーネントの直後には配置できません。回避策として、2つのコンポーネントの間にtMapコンポーネントを配置し、入力データを出力にコピーします。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。