> ## 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 接続を最初から最後まで設定するために必要な手順の例を示します。この例では、車両のメンテナンススケジュールを含む API を使用します。

## API 接続の作成

最初に、新しい API 接続を作成します。

<Steps>
  <Step>
    Connect AI ナビゲーションメニューの **Sources** ページを開きます。
  </Step>

  <Step>
    右上隅の **+ Add Connection** をクリックします。
  </Step>

  <Step>
    開いた **Add Connection** ダイアログで *API* と入力し、API コネクタタイルを表示してからそのタイルをクリックします。
  </Step>

  <Step>
    **Global Settings Tab** で接続に名前を付けます。この例では「TestAPI」を使用します。
  </Step>

  <Step>
    認証方法を選択します。この API では認証が不要なため、`No Auth` を選択します。
  </Step>

  <Step>
    この接続にはヘッダーが不要なため、このセクションは空白のままにします。
  </Step>

  <Step>
    ページネーションを設定します。この API は次のページの URL を使用し、レスポンスの一部として次のページの URL を提供します。以下の例は、Vehicles エンドポイントからのレスポンスの関連部分を示しています：

    ```json theme={null}
    {
      "people": [
        {
            ...
        },
        ...
      ],
      "nextLink": "https://my_vehicles/api?$skiptoken='ERNSH'"
    }
    ```
  </Step>

  <Step>
    Pagination の **Type** を `URL` に設定します。
  </Step>

  <Step>
    URL Path を `/nextLink` に設定します。
  </Step>

  <Step>
    ページ上部の **Create** ボタンをクリックして API 接続を保存します。
  </Step>
</Steps>

## テーブルの作成

カタログに対応する接続を追加したので、API の各エンドポイントに対してテーブルを作成できます。

<Steps>
  <Step>
    API 接続で **Tables** をクリックして Tables タブを開きます。
  </Step>

  <Step>
    **Add** をクリックして新しいテーブルを追加します。
  </Step>

  <Step>
    テーブルの **Name** を指定します。これは、クライアントからアクセスする際にテーブルが表示される名前です。例: `Vehicles`。
  </Step>

  <Step>
    **Response Type** を `JSON` のままにし、**Request** 呼び出しを `GET` にします。
  </Step>

  <Step>
    **Request URL** を API エンドポイントの URL に設定します。この例では `https://my_vehicles/api` を使用します。
  </Step>

  <Step>
    この API にはパラメータがないため、**Parameters** セクションを空白のままにします。
  </Step>

  <Step>
    同様に、**Headers** も空白のままにします。
  </Step>

  <Step>
    **Table Data** セクションで **Configure** をクリックして **Table Data** 情報を自動入力します。これにより **Preview Request** が開き、以下の API レスポンスが表示されます。

    ```json expandable theme={null}
    {
      "people": [
        {
          "personal": {
            "age": 21,
            "gender": "M",
            "name": {
              "first": "John",
              "last": "Doe"
            }
          },
          "vehicles": [
            {
              "type": "car",
              "model": "Honda Civic",
              "insurance": {
                "company": "ABC Insurance",
                "policy_num": "12345"
              },
              "features": [
                "sunroof",
                "rims"
              ],
              "maintenance": [
                {
                  "date": "07-17-2017",
                  "desc": "oil change"
                },
                {
                  "date": "01-03-2018",
                  "desc": "new tires"
                }
              ]
            },
            {
              "type": "truck",
              "model": "Dodge Ram",
              "insurance": {
                "company": "ABC Insurance",
                "policy_num": "12345"
              },
              "features": [
                "lift kit",
                "tow package"
              ],
              "maintenance": [
                {
                  "date": "08-27-2017",
                  "desc": "new tires"
                },
                {
                  "date": "01-08-2018",
                  "desc": "oil change"
                }
              ]
            }
          ]
        },
        ...
      ]
    }
    ```
  </Step>

  <Step>
    **Next** をクリックして Add Columns メニューにアクセスします。ここで、ルートパスと公開するカラムを選択する必要があります。
    **Root Path** は、繰り返しサブ要素を含む JSON 要素であり、テーブルの行を決定します。この場合、このドキュメント内に複数の要素が繰り返し出現するため、複数のルートパスを選択する必要があります。ルート要素がネストされているため、この例に示すように、一部のデータは各行で繰り返されます。レスポンスの以下のスニペットに示すように、`people` 要素はユーザーごとに繰り返されるため、まずこの要素を選択します：

    ```json theme={null}
    {
         "people": [
             {
             <Person 1 data>
             },
             {
             <Person 2 data>
             }, 
             ...
         ]
     }
    ```

    これら 2 つの繰り返しセクションのデータも必要なため、`vehicles` と `maintenance` の要素も選択します。
    *注: JSON 配列は角括弧 `[]` を使用して JSON オブジェクトの配列を格納し、各オブジェクトは中括弧 `{}` で囲まれています。*
  </Step>

  <Step>
    この例では、people 配列から `first`、`last`、vehicles 配列から `type`、`model`、maintenance 配列から `date`、`description` を公開するカラムとして選択します。
  </Step>

  <Step>
    **Next** をクリックして **Table Preview** にアクセスします。現在の設定でテーブルの最初の 10 行がレンダリングされます。正しく設定されている場合は、選択した各カラムのデータが表示されます。

    | first | last | type  | model       | date       | description |
    | :---- | :--- | :---- | :---------- | :--------- | :---------- |
    | John  | Doe  | car   | Honda Civic | 07-17-2017 | oil change  |
    | John  | Doe  | car   | Honda Civic | 01-03-2018 | new tires   |
    | John  | Doe  | truck | Dodge Ram   | 08-27-2017 | new tires   |
    | John  | Doe  | truck | Dodge Ram   | 01-08-2018 | oil change  |
  </Step>

  <Step>
    **Confirm** をクリックして **Table Data** 設定を自動的に追加します。選択したデータは **Table Data** セクションの **Root Path** および **Columns** フィールドに反映されます。
  </Step>

  <Step>
    **Save** をクリックしてこのテーブルを保存します。
  </Step>
</Steps>

## クエリのテスト

接続とテーブルを設定した後、**Data Explorer** でクエリを実行してテストできます。

<Steps>
  <Step>
    Connect AI で **Data Explorer** に移動します。
  </Step>

  <Step>
    **Connections** リストで、先ほど作成した `TestAPI` 接続を選択します。これにより、この例で作成した `Vehicles` テーブルを含む、その接続のすべてのテーブルが展開されます。
  </Step>

  <Step>
    このテーブルの横の省略記号をクリックして **query** を選択します。これにより、すべての車両を取得する SQL クエリが自動的に生成されます：

    * `SELECT * FROM [TestAPI].[REST].[Vehicles]` この SQL クエリを必要に応じて変更できます。例えば、特定のモデルの車両のみを選択する `WHERE` 句を追加できます。
    * `SELECT * FROM [TestAPI].[REST].[Vehicles] WHERE model='Honda Civic'`
  </Step>

  <Step>
    **Execute** をクリックしてこのクエリを実行します。すべてが正しく設定されている場合、結果がすぐに表示されます。
  </Step>
</Steps>

お使いのクライアントからこの API データに接続するには、**Integrations** ページの特定のクライアントに関するドキュメントを参照してください。このデータにアクセスするには、カタログ（またはクライアントに応じてデータベース）を `TestAPI` に設定する必要がある場合があります。
