コンテンツにスキップ

REST APIを通じてリモート設定を取得する

Joystick Schematic

Joystickは、すべてのリモート設定を1つの強力なプラットフォームで管理し、REST APIを介して簡単に大規模に取得できます。

APIキー

APIを介してコンテンツを取得するには、APIキーを作成する必要があります。

リクエストとレスポンス

これは、REST APIを介して単一のコンテンツを取得するためのリクエストとレスポンスです。単一の呼び出しで複数のコンテンツを取得することもできます。

リクエスト

エンドポイント

POST https://api.getjoystick.com/api/v1/config/:contentId/dynamic

作成したConfiguration Content Idで:contentIdを置き換えます。:contentIdは大文字と小文字を区別しません。

ヘッダー

ヘッダー 必須 備考
Content-Type application/json はい
X-Api-Key あなたのAPIキー はい ターゲットとする環境のために作成されたAPIキーです。これは各環境ごとに異なります。

リクエストクエリパラメータ

クエリパラメータ 必要性 説明
responseType オプション 大文字と小文字を区別します。レスポンスの'data'オブジェクトをシリアル化することを示します。出力については、レスポンスセクションを参照してください。
使用法: /config/:contentId/dynamic?responseType=serialized

リクエストボディ

リクエストボディはJSONである必要があり、空にすることはできません。最低限、次のスニペットで構成される必要があります。

{
    "u": "",
    "p": {}
}   
{
    "u": "the-unique-user-id",
    "v": "3.2.1",
    "p": {
        "level": 1,
        "location": "north_pole",
        "balance": 101,
        "days_since_install": 14
    }
}   
属性 必要性 説明
u 文字列。必須。 これは特定のユーザーの一意の識別子です。この識別子を使用して、ユーザーをスティッキーなABテストグループに分割します。最低限、空の文字列を送信してください。
p オブジェクト。必須。 これは、Joystickがセグメンテーションのために使用できるキー:値の属性の辞書です(送信した属性に基づいて異なる設定コンテンツを返すことができます)。最低限、空のオブジェクトを送信してください。使用詳細の表示
v 文字列。オプション。 これは、リクエストを行っているあなたのアプリのセマンティックバージョンです。セマンティックバージョニングに基づいて設定の後方互換性のあるリビジョンを提供できるように、これを送信することを強くお勧めします。これは、例えば"3.2.1"のような3部構成のセマンティックバージョンでなければなりません。

curl --location --request POST 'https://api.getjoystick.com/api/v1/config/:contentId/dynamic' \
--header 'X-Api-Key: YOUR-API-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{"u": "", "p": {}}'

Joystickに保存されているコンテンツが返されるはずです。 Get API

トラブルシューティング

問題が発生していますか?トラブルシューティングガイドを参照してください。

レスポンス

レスポンス

// これは、"data"ラッパー内の設定を持つデフォルトのレスポンスです。
{
  "data":
  {
    "greeting": "Hello, world!"
  },
  "hash": "2277e0d4",
  "meta":
  {
    "uid": 0, "mod": 0, "seg":[]
  }
}   
// クエリパラム?responseType=serializedを追加することで、設定をシリアル化して取得できます。
{
  "data": "{ \"greeting\": \"Hello, world!\"}",
  "hash": "2277e0d4",
  "meta":
  {
    "uid": 0, "mod": 0, "seg":[]
  }
}   
// リクエストエンドポイントから末尾の/dynamicを削除することで、
// "data"ラッパーなしで設定コンテンツのみを受け取ることができます。
{
    "greeting": "Hello, world!"
}   
レスポンス属性 説明
data これは、a)すべてのインラインコメントが取り除かれ、b)セグメンテーションまたはabテストに基づいて任意の動的コンテンツが置き換えられた、よく整形されたJSONとして返される設定内容です。これは、オプションでシリアル化された文字列として返されます。
hash これはコンテンツのハッシュです。コンテンツが前回のリクエスト以降に更新されたかどうかを判断するために使用できます。コンテンツが変更された場合のみハッシュが変更されます。例えば、リクエストで同じハッシュを取得した場合、アプリのキャッシュされた設定コンテンツを更新する必要はないかもしれません。
meta.uid Joystickでは、リクエストで送信するuパラメータをハッシュ関数に通して、安定した整数のユーザーIDを生成します(送信する同じ"u"文字列は常に同じ整数を生成します)。これは参考のために返されます。この整数の使用は、ユーザーを1000で割った余りを使用して、安定したabテストグループに配置するためです。
meta.mod meta.uidの最後の3桁です。これにより、ユーザーがどのABテストグループに割り当てられたかを判断できます。
meta.seg これは、このリクエストでデータを変更したセグメント名とabテストグループのバリアント名を示すオブジェクトの配列です。空の場合、レスポンスはデフォルト値であり、ABテストやセグメンテーションには含まれていません。これについての詳細は、Dynamic Contentを参照してください。

"meta.seg"コンポーネントの理解

レスポンスのmeta.segコンポーネントは、ビジネスインテリジェンスや分析のために重要です。セグメント名、バリアント名、および追加情報のオプションの小さなスニペットを渡すことができるオプションを示します。

{
    "data": {...},
    "hash": "2277e0d4",
    "meta": {
        "uid": 0,
        "mod": 0,
        "seg": [
        {
            "n": "My Test",
            "v": "Variant A",
            "i": "Optional Information"
        },
        {
            "n": "My Segment",
            "v": null, // vはセグメントの詳細のみが提供された場合にnullになります。
            "i": "More Optional Information"
        }
        ]
    }
}
segオブジェクトの部分 説明
n レスポンスが含まれていたセグメントの名前。
v バリアント名。Joystickを使用してABテストを実行している場合、これはレスポンスが含まれていたバリアントの名前またはラベルになります。
i これは、特定のバリアントをタグ付けまたは識別するための追加情報を送信することができるオプションの情報です。これはDynamic Mappingで設定できます。

追加情報

Joystickにアクセスできない場合にアプリが適切に動作するように、フォールバックがあることを強くお勧めします。詳細については、Integration Guideを参照してください!

1つの呼び出しで複数の設定を取得することができます。Multiple Content APIを参照してください!

Let's Go!

サンドボックスアカウントを取得する

チームにロケットブースターを装備しましょう。今日サンドボックスアカウントを取得

コミュニティに参加する

ヒント、サポート、その他のために、私たちのDiscordサーバーにアクセスしてください:Discord