Java SDK統合ガイド java-sdk-integration-guide
Experience Rollouts Java SDKは、機能フラグデータをローカルにキャッシュし、すべてのリクエストで同期API呼び出しなしでフラグを評価するサーバーサイドライブラリです。 このガイドでは、現在のSDK(4.x)について説明します。
前提条件 prerequisites
Java SDKを統合する前に、次のことを確認してください。
- JDK 11以降(SDK バージョン 3.0.0以降で必要。以前のバージョンはJDK 8以降をサポート)
- Maven ベースのビルドシステム
- Adobe Developer Console プロジェクトの API キー および サービストークン のクライアント ID — Experience Rollouts サポートに連絡して、クライアント IDを許可リストに加えるしてください
- Experience Rollouts コンソールに登録されている アプリケーションクライアント ID は、 アプリケーションのオンボーディング を参照してください。
Maven依存関係の追加 maven-dependency
エクスペリエンスのロールアウト Java SDKをプロジェクトのpom.xmlに追加します。
<dependency>
<groupId>com.adobe.cloudtech</groupId>
<artifactId>fg-client-sdk</artifactId>
<version>4.0.6</version>
</dependency>
SDKの初期化 initialize
SDKは、FloodgateClient.createInstance()を使用してアプリケーションの起動時に1回初期化されます。 このメソッドは、設定ビルダーで構築したFloodgateConfiguration オブジェクトを受け取ります。
サービストークンのコールバックを実装する service-token-callback
SDKでは、コールバックインターフェイスを使用して、実行時に新しいサービストークンを取得します。
private class FgConfigCallBack implements FGConfigBaseCallBack {
@Override
public String getIMSServiceToken() {
// Fetch and return a valid service token
}
@Override
public boolean isAnalyticsEnabled() {
return false; // Set to true to enable analytics
}
}
設定オブジェクトの作成 configuration
SDKを設定するには、設定ビルダーを使用します。
FloodgateConfiguration configuration = FloodgateConfiguration.FloodgateConfigurationBuilder
.aFloodgateConfiguration(
FgEnv.PRD, // Use FgEnv.STG for Stage
"<YOUR_API_KEY>",
Set.of("<CLIENT_ID_1>", "<CLIENT_ID_2>"),
new FgConfigCallBack(),
CallType.ASYNC
)
.withRetryPolicy(retryPolicy) // Optional: defaults to 5 retries, 10s interval
.build();
ステージ環境にはFgEnv.STGを、実稼動環境にはFgEnv.PRDを使用します。
クライアントインスタンスの作成 client-instance
FloodgateClient fgClient = FloodgateClient.createInstance(configuration);
機能フラグの取得 retrieve-features
認証済みユーザー authenticated-user
IMS アクセストークンを使用して、現在のユーザーの機能フラグを取得します。
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withAccessToken("<USER_ACCESS_TOKEN>")
.withContext(context)
.build();
FeaturesResponse[] features = fgClient.getFeatures(request);
匿名ユーザー anonymous-user
未認証のユーザーの場合は、訪問者IDとサービストークンを渡します。
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withServiceToken("<SERVICE_TOKEN>")
.withVisitorId("<VISITOR_ID>")
.withContext(context)
.build();
FeaturesResponse[] features = fgClient.getFeatures(request);
特定の機能フラグまたはリリースの取得 specific-feature
キーで単一の機能フラグを取得するには:
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withAccessToken("<ACCESS_TOKEN>")
.withFeatureKey("<FEATURE_KEY>")
.build();
リリースキーで取得するには、.withFeatureKey()を.withReleaseKey()に置き換えます。
機能が有効になっているかどうかを確認する check-feature
boolean isEnabled = FloodgateClient.isFeatureEnabled(features, "MY_FEATURE_FLAG");
if (isEnabled) {
// Serve the new experience
} else {
// Serve the default experience
}
リリースベースのチェックの場合:
boolean isEnabled = FloodgateClient.isFeatureEnabled(features, "MY_RELEASE", "MY_FEATURE_FLAG");
キャッシュ管理 cache-management
SDKは、機能フラグデータをキャッシュし、コンソールのアプリケーションごとに設定されたポーリング間隔で更新します。 オンデマンドキャッシュの更新をトリガーするには:
fgClient.refreshClientCache("<CLIENT_ID>");
キャッシュできないクライアント non-cacheable
キャッシュできないクライアントの場合、getFeature()は毎回ライブ API呼び出しを行います。 SDKはバックグラウンドポーリングを継続し、クライアントがキャッシュ可能になるとキャッシュベースのサービスに切り替えます。 SDK バージョン 0.8以降でサポートされています。
設定オプション configuration-options
ビルダーでは、次のオプションの設定方法を使用できます。
.alwaysCache().neverCache().withHttpClient(client).withScheduledExecutorService(executor).includeControlGroup()エラーの処理 error-handling
SDKの例外を検出するためにgetFeatures()件の呼び出しをラップ:
try {
features = fgClient.getFeatures(request);
} catch (FgClientException e) {
int statusCode = e.getStatusCode();
// Handle error and serve default experience
} catch (FgInitException e) {
e.printStackTrace();
}