> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# テーブル

## 概要

API に接続した後、テーブルの形式でそのデータを作成、表示、設定できます。テーブルはウィザードを使用してカスタマイズできます。また、効率を向上させるためにサーバーサイドフィルタを指定することもできます。このページでは、テーブルの作成、およびテーブルデータ、パラメータ、ヘッダー、フィルタの設定について説明します。

## テーブルの作成

[API Connector](/ja/Data-Sources/APIConnector) のテーブルを作成する際は、Connector のカタログに一覧表示されるように、各テーブルを個別に作成する必要があることを覚えておいてください。作成するには、以下の手順に従います：

<Steps>
  <Step>
    **Add** をクリックして新しいテーブルの作成を開始します。
  </Step>

  <Step>
    テーブルの **Name** を入力します。
  </Step>

  <Step>
    **Request URL** で `Get` または `Post` を選択します。
  </Step>

  <Step>
    **Request URL** フィールドに API エンドポイントの URL を入力します。
    <Note>レコードごとに異なるリクエストが必要な API に接続するには、カラム名を中括弧で囲んで含めます。例: `https://api.example.com/table/{id}`。</Note>
  </Step>

  <Step>
    `Post` を選択した場合は、API リクエストに含める **Body** を指定します。次に、API エンドポイントの `URL` を入力します。

    <p>
      **Body** セクションを使用して `Post` API リクエストのリクエストボディフィルタをリクエストできます。以下はリクエストボディとフィルタの例です：

      ```
      {
      	"query": { "date_utc": { "$gte": "[_input.startDate]", "$lte": "[_input.endDate]" } }, "options": { "select": \["name", "date_utc", "success", "details"], "sort": { "date_utc": "asc" }, "limit": 20 } 
      }
      ```
    </p>

    この場合、ユーザーは開始日と終了日の入力を求められます。

    <p>
      ボディフィルタがある場合、**Edit Table** に **Body Filter(s) Detected** というメッセージが表示されます。
    </p>

    <Note>
      テーブルのリクエストボディにもフィルタが含まれている場合は、上記の例の `"name"` の前に示すように、角括弧にエスケープ文字を追加する必要があります。
    </Note>
  </Step>

  <Step>
    **Response Type** として **JSON**、**LDJSON**、**XML**、または **CSV** を選択します。

    * **JSON**—レスポンスが JSON としてフォーマットされます。
    * **LDJSON**—レスポンスが Linked Data JSON としてフォーマットされ、JSON データ内のオブジェクト定義をリンクできます。
    * **XML**—レスポンスが XML タグ付きデータとしてフォーマットされます。
    * **CSV**—レスポンスがカンマ区切りデータとしてフォーマットされます。
  </Step>
</Steps>

### テーブルデータ

次に、コネクタに API のレスポンスをテーブルにモデル化する方法を指定する必要があります。

<Steps>
  <Step>
    **Table Data** セクションの **Configure** をクリックして設定ウィザードを開きます。
  </Step>

  <Step>
    （オプション）**Request URL** に `{id}` などの一意のレコード識別子を追加した場合、**Query Inputs** ダイアログが表示されます。初期レスポンスデータを取得するためにレコード識別子の値を設定し、**Next** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/cdata/0o_7a3Hya0sbnsUJ/ja/images/api_query_inputs.png?fit=max&auto=format&n=0o_7a3Hya0sbnsUJ&q=85&s=74b2c3306148417394faeea9efd3f36b" alt="API query inputs" width="753" height="339" data-path="ja/images/api_query_inputs.png" />
    </Frame>
  </Step>

  <Step>
    Connect AI が API を呼び出し、データのプレビューを提供します。

    <Frame>
      <img src="https://mintcdn.com/cdata/0o_7a3Hya0sbnsUJ/ja/images/APIConnectorTable01.png?fit=max&auto=format&n=0o_7a3Hya0sbnsUJ&q=85&s=9dbc4055e09d73388cd9ab39a2303e3f" alt="API Connector Table" width="628" height="493" data-path="ja/images/APIConnectorTable01.png" />
    </Frame>
  </Step>

  <Step>
    **Next** をクリックします。
  </Step>

  <Step>
    **Add Repeat Elements** ダイアログで、API テーブルに追加する繰り返し要素の横にあるチェックボックスを選択します。これは、行として使用される繰り返しアイテムを含む API エンドポイント内の要素のパスです。レスポンス内の複数のパスに繰り返し要素がある場合は、複数の繰り返し要素を選択できます。

    <Frame>
      <img src="https://mintcdn.com/cdata/0o_7a3Hya0sbnsUJ/ja/images/api_add_repeat_elements.png?fit=max&auto=format&n=0o_7a3Hya0sbnsUJ&q=85&s=8409e49d3ddb3458ad01ca259ad3f2f7" alt="API add repeat elements" width="1425" height="860" data-path="ja/images/api_add_repeat_elements.png" />
    </Frame>
  </Step>

  <Step>
    （オプション）**Custom Repeat Elements** をトグルして、リストから選択するのではなく、繰り返し要素を手動で追加できます。

    <Frame>
      <img src="https://mintcdn.com/cdata/0o_7a3Hya0sbnsUJ/ja/images/api_custom_repeat_elements.png?fit=max&auto=format&n=0o_7a3Hya0sbnsUJ&q=85&s=4d76646c9250ff0c35d6f35dece9bafc" alt="API custom repeat elements" width="1432" height="368" data-path="ja/images/api_custom_repeat_elements.png" />
    </Frame>

    **Add Repeat Element** をクリックして別の繰り返し要素を手動で追加します。
  </Step>

  <Step>
    **Next** をクリックします。
  </Step>

  <Step>
    **Add Columns** ダイアログで、API テーブルに追加するカラムを選択します。

    <Frame>
      <img src="https://mintcdn.com/cdata/0o_7a3Hya0sbnsUJ/ja/images/api_add_columns.png?fit=max&auto=format&n=0o_7a3Hya0sbnsUJ&q=85&s=ca9ba0e8c5138346a471e03f2034264f" alt="API add columns" width="1428" height="572" data-path="ja/images/api_add_columns.png" />
    </Frame>

    カラムを選択したら、**Next** をクリックします。
  </Step>

  <Step>
    **Preview Table** ダイアログで、テーブルの内容を確認します。変更を加えるには **Back** をクリックします。

    <Frame>
      <img src="https://mintcdn.com/cdata/0o_7a3Hya0sbnsUJ/ja/images/api_preview_table.png?fit=max&auto=format&n=0o_7a3Hya0sbnsUJ&q=85&s=9db1d671c64bdf8660848be22921c14e" alt="API preview table" width="1430" height="443" data-path="ja/images/api_preview_table.png" />
    </Frame>
  </Step>

  <Step>
    テーブルのプレビューを確認し、**Next** をクリックします。設定ウィザードが、選択したすべてのカラムを適切なフィールドに自動的にインポートします。
  </Step>

  <Step>
    **Edit Table** 画面の **Table Data** セクションに戻り、カラム名とデータ型を編集できます。主キーの割り当てやカラムの削除も可能です。子テーブルの場合は、親参照カラムも変更できます。その他の編集については、**Configure** を再度クリックして繰り返し要素やその他のデータを調整します。
  </Step>

  <Step>
    **Pseudo Columns** タブでは、クエリの WHERE 句でフィルタとして使用するカラムを追加できますが、データ出力には含まれません。
  </Step>

  <Step>
    **Edit Table** 画面の上部の **Save** をクリックして、テーブルデータを保存します。
  </Step>

  <Step>
    **Edit Table** 画面の上部の **Preview** をクリックして、テーブルをプレビューします。一意のレコード識別子を追加した場合は、**Query Inputs** ダイアログが表示されます。レスポンスデータをプレビューするための値を設定します。
  </Step>
</Steps>

### パラメータ

このテーブルのすべての API リクエストに送信する URL パラメータを追加できます。パラメータを作成するには、次の手順に従います。

<Steps>
  <Step>
    **Add Param** をクリックします。
  </Step>

  <Step>
    パラメータの **Name** を入力します。
  </Step>

  <Step>
    パラメータの **Value** を入力します。
  </Step>
</Steps>

さらにパラメータを追加するには、上記の手順を繰り返します。

### ヘッダー

このテーブルのすべての API リクエストとともに送信する HTTP ヘッダーを追加できます。これらのヘッダーは、API コネクタ自体で設定されたヘッダーに追加されます。新しいヘッダーを追加するには、次の手順に従います。

<Steps>
  <Step>
    ヘッダーの **Name** を入力します。
  </Step>

  <Step>
    ヘッダーの **Value** を指定します。
  </Step>
</Steps>

さらにヘッダーを追加するには、**Add Header** をクリックして上記の手順を繰り返します。

### フィルタ

カラムを含むテーブルを作成した後、クエリ中に WHERE 句が発行されたときの API Connector の動作を定義するフィルタを作成できます。フィルタはオプションですが、WHERE 句の条件に対してパフォーマンスを向上させることができます。

<Steps>
  <Step>
    **Add Filter** をクリックします。
  </Step>

  <Step>
    フィルタを適用する **Column Name** を選択します。このフィルタは、選択したカラムと SQL 演算子が WHERE 句に存在する場合に適用されます。
  </Step>

  <Step>
    **SQL Operator** を選択します。このフィルタは、選択したカラムと SQL 演算子が WHERE 句に存在する場合に適用されます。
  </Step>

  <Step>
    ドロップダウンリストから **Request Filter** を選択します: **URL Parameter** または **Request Header**。リクエストフィルタは、フィルタが API へのリクエストでどのように渡されるかを決定します。
  </Step>

  <Step>
    この API がフィルタリングに使用する **URL Parameter** または **Request Header** を指定します。
  </Step>
</Steps>

さらにフィルタを追加するには、上記の手順を繰り返します。

#### 例

この例では、レコードが作成された日付で Reports テーブルのレコードをフィルタリングするクエリを処理するフィルタの作成方法を示します。

このようなクエリの例を以下に示します。

```sql theme={null}
SELECT * FROM Reports Where CreatedDate > 2022-12-31
```

このテーブルにフィルタが定義されていない場合、コネクタは API からすべての行を読み込み、指定した `CreatedDate` カラムでリストをメモリ内でフィルタリングすることで、このフィルタをメモリ内で処理します。ただし、この API はこのタイプのフィルタリングをサーバーサイドでサポートしており、パフォーマンスを大幅に向上させることができます。このクエリが API に対してどのように見えるかを以下に示します。

```bash theme={null}
https://www.mycustomapi.org/api/reports?$startdate=2022-12-31
```

このフィルタを API に送信する方法をコネクタに指示するには、以下のフィールドを指定します。

**Column Name**: CreatedDate

**SQL Operator**: Greater Than

**Request Filter**: URL Parameter

**Parameter Name**: startdate

これにより、`CreatedDate` カラムに greater than 演算子が指定された場合、API リクエストにフィルタ値を含む `startDate` URL パラメータを含めるようにコネクタに指示します。
