目的
Automation API では、paramsIO オブジェクトを使用してクエリコレクションのフィルタリング、ページネーション、ソートを行います。このチュートリアルでは、paramsIO の実用的なユースケースを紹介します。
siteCode値を使用した複数のsiteIdの取得- ステータスによる実験のフィルタリング
- 結果サイズを制御するためのページネーション条件の設定
paramsIO パターンは多くのエンドポイントで使用され、一貫した構造を持っているため、正確なデータ取得のための強力なツールとなります。
要件
アクセストークン
Automation API にはアクセストークンが必要です。 トークンをプログラム的に取得するには、Get started の記事の指示に従ってください。paramsIO の理解
paramsIO オブジェクトは、API エンドポイントに構造化されたクエリを渡します。通常、ページネーション、ソート、フィルタリングのツールが含まれます。paramsIO の詳細については、Get started の記事を参照してください。
フィルター構造
フィルターは一貫した JSON 構造を使用します。| プロパティ | 型 | 説明 |
|---|---|---|
field | String | フィルター対象のコレクション内のプロパティ(例: "code"、"status") |
operator | String | 比較演算子(例: "EQUAL"、"BETWEEN"、"GREATER") |
parameters | Array | マッチさせる値の配列 |
フィルタ JSON オブジェクトは、エンドポイント URL に追加する際に URL エンコード されている必要があります。たとえば、
[ は %5B に、" は %22 になります。ユースケース 1: siteCode で複数の siteId を取得する
Automation API は、ほとんどの操作で内部の数値id を必要とします。この例では、siteCode 値を使って複数のサイト ID を同時に取得します。
ステップ 1: フィルターを定義する
複数のサイトを取得するには、サイトコードの配列とともにEQUAL 演算子を使用します。
ステップ 2: リクエストを送信する
URL エンコードされたフィルターを付けて/sites エンドポイントに GET リクエストを送信します。
エンドポイント: GET https://api.kameleoon.com/sites
リクエスト例:
ステップ 3: レスポンスを処理する
API は一致するすべてのサイトを JSON 配列で返します。id 値を後続の API 操作に使用します。
ユースケース 2: ページネーションを使ってアクティブな実験をフィルタリングする
この例では、フィルタリングとページネーションを組み合わせて、アクティブな実験を管理しやすいバッチで取得する方法を示します。ステップ 1: フィルターとページネーションを定義する
アクティブな実験のフィルターを作成し、ページネーションパラメーターを指定します。 フィルター JSON:page=1: 結果の最初のページperPage=200: 1 ページあたり最大 200 件
ステップ 2: リクエストを送信する
/experiments エンドポイントに GET リクエストを送信します。
エンドポイント: GET https://api.kameleoon.com/experiments
リクエスト例:
ステップ 3: レスポンスを処理する
API は最大 200 件のアクティブな実験を返します。page パラメーターをインクリメントします。
ユースケース 3: 複数のフィルターを組み合わせる
より精密にクエリを行うには、複数のフィルター条件を組み合わせます。たとえば、特定のサイト上のアクティブな実験を見つけます。ベストプラクティス
- URL エンコーディング: リクエスト URL に追加する前に、フィルター JSON を URL エンコードしてください。
- ページネーション:
perPageを使用して結果サイズを制限し、大きなコレクションでのタイムアウトを防ぎます。 - 複数のフィルター: フィルター条件を組み合わせて、不要なデータ転送を削減します。
- 演算子の選択: 複数の個別リクエストを行うのではなく、複数の値に対応する演算子を使用します。