メインコンテンツへスキップ

目的

Automation API では、paramsIO オブジェクトを使用してクエリコレクションのフィルタリング、ページネーション、ソートを行います。このチュートリアルでは、paramsIO の実用的なユースケースを紹介します。
  • siteCode 値を使用した複数の siteId の取得
  • ステータスによる実験のフィルタリング
  • 結果サイズを制御するためのページネーション条件の設定
paramsIO パターンは多くのエンドポイントで使用され、一貫した構造を持っているため、正確なデータ取得のための強力なツールとなります。

要件

アクセストークン

Automation API にはアクセストークンが必要です。 トークンをプログラム的に取得するには、Get started の記事の指示に従ってください。

paramsIO の理解

paramsIO オブジェクトは、API エンドポイントに構造化されたクエリを渡します。通常、ページネーション、ソート、フィルタリングのツールが含まれます。paramsIO の詳細については、Get started の記事を参照してください。

フィルター構造

フィルターは一貫した JSON 構造を使用します。
プロパティ説明
fieldStringフィルター対象のコレクション内のプロパティ(例: "code""status")
operatorString比較演算子(例: "EQUAL""BETWEEN""GREATER")
parametersArrayマッチさせる値の配列
フィルタ JSON オブジェクトは、エンドポイント URL に追加する際に URL エンコード されている必要があります。たとえば、[%5B に、"%22 になります。

ユースケース 1: siteCode で複数の siteId を取得する

Automation API は、ほとんどの操作で内部の数値 id を必要とします。この例では、siteCode 値を使って複数のサイト ID を同時に取得します。

ステップ 1: フィルターを定義する

複数のサイトを取得するには、サイトコードの配列とともに EQUAL 演算子を使用します。
[
  {
    "field": "code",
    "operator": "EQUAL",
    "parameters": ["xdrio4plsn", "adflwp2mms", "lricdj5pqw"]
  }
]

ステップ 2: リクエストを送信する

URL エンコードされたフィルターを付けて /sites エンドポイントに GET リクエストを送信します。 エンドポイント: GET https://api.kameleoon.com/sites リクエスト例:
curl -L -X GET 'https://api.kameleoon.com/sites?filter=%5B%7B%22field%22%3A%22code%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22xdrio4plsn%22%2C%22adflwp2mms%22%2C%22lricdj5pqw%22%5D%7D%5D' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'

ステップ 3: レスポンスを処理する

API は一致するすべてのサイトを JSON 配列で返します。
[
  {
    "id": 42099,
    "url": "https://www.example-production.com/",
    "name": "Production Environment",
    "code": "xdrio4plsn"
    ...
  },
  {
    "id": 42100,
    "url": "https://www.example-staging.com/",
    "name": "Staging Environment",
    "code": "adflwp2mms"
    ...
  },
  {
    "id": 42101,
    "url": "https://www.example-test.com/",
    "name": "Test Environment",
    "code": "lricdj5pqw"
    ...
  }
]
これらの id 値を後続の API 操作に使用します。

ユースケース 2: ページネーションを使ってアクティブな実験をフィルタリングする

この例では、フィルタリングとページネーションを組み合わせて、アクティブな実験を管理しやすいバッチで取得する方法を示します。

ステップ 1: フィルターとページネーションを定義する

アクティブな実験のフィルターを作成し、ページネーションパラメーターを指定します。 フィルター JSON:
[
  {
    "field": "status",
    "operator": "EQUAL",
    "parameters": ["ACTIVE"]
  }
]
ページネーションパラメーター:
  • page=1: 結果の最初のページ
  • perPage=200: 1 ページあたり最大 200 件

ステップ 2: リクエストを送信する

/experiments エンドポイントに GET リクエストを送信します。 エンドポイント: GET https://api.kameleoon.com/experiments リクエスト例:
curl -L -X GET 'https://api.kameleoon.com/experiments?perPage=200&page=1&filter=%5B%7B%22field%22%3A%22status%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22ACTIVE%22%5D%7D%5D' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'

ステップ 3: レスポンスを処理する

API は最大 200 件のアクティブな実験を返します。
[
  {
    "id": 12345,
    "siteId": 54321,
    "name": "My Active Experiment",
    "description": "Testing new checkout page",
    "baseURL": "https://yourwebsite.com",
    "type": "AI",
    "trackingTools": [],
    "status": "ACTIVE",
    "dateCreated": "2026-02-03T18:41:00",
    "tags": ["checkout", "mobile"],
    ...
  }
]
追加のページを取得するには、後続のリクエストで page パラメーターをインクリメントします。

ユースケース 3: 複数のフィルターを組み合わせる

より精密にクエリを行うには、複数のフィルター条件を組み合わせます。たとえば、特定のサイト上のアクティブな実験を見つけます。
[
  {
    "field": "status",
    "operator": "EQUAL",
    "parameters": ["ACTIVE"]
  },
  {
    "field": "siteId",
    "operator": "EQUAL",
    "parameters": ["xdrio4plsn"]
  }
]
リクエスト例:
curl -L -X GET 'https://api.kameleoon.com/experiments?filter=%5B%7B%22field%22%3A%22status%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22ACTIVE%22%5D%7D%2C%7B%22field%22%3A%22siteId%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22xdrio4plsn%22%5D%7D%5D' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'

ベストプラクティス

  1. URL エンコーディング: リクエスト URL に追加する前に、フィルター JSON を URL エンコードしてください。
  2. ページネーション: perPage を使用して結果サイズを制限し、大きなコレクションでのタイムアウトを防ぎます。
  3. 複数のフィルター: フィルター条件を組み合わせて、不要なデータ転送を削減します。
  4. 演算子の選択: 複数の個別リクエストを行うのではなく、複数の値に対応する演算子を使用します。

関連リソース