Guide d’intégration de Java SDK java-sdk-integration-guide
La SDK Java des déploiements d’expérience est une bibliothèque côté serveur qui met en cache les données des indicateurs de fonctionnalité localement et évalue les indicateurs sans appel API synchrone à chaque requête. Ce guide couvre le SDK actuel (4.x).
Conditions préalables prerequisites
Avant d’intégrer Java SDK, vérifiez les points suivants :
- JDK 11 ou version ultérieure (requis à partir de la version 3.0.0 de SDK ; les versions antérieures prennent en charge JDK 8+)
- Un système de création basé sur Maven
- Une clé API et un jeton de service identifiant client de votre projet Adobe Developer Console — contactez le support des déploiements d’Experience pour que votre identifiant client soit placé sur la liste autorisée
- Votre ID de client de l’application enregistré dans la console Déploiements d’expérience ; voir Intégration de votre application
Ajoutez la dépendance Maven . maven-dependency
Ajoutez le SDK Java de déploiements d’expérience au pom.xml de votre projet :
<dependency>
<groupId>com.adobe.cloudtech</groupId>
<artifactId>fg-client-sdk</artifactId>
<version>4.0.6</version>
</dependency>
Initialiser le SDK initialize
Le SDK est initialisé une seule fois au démarrage de l’application à l’aide de FloodgateClient.createInstance(). La méthode prend un objet FloodgateConfiguration que vous créez avec le créateur de configurations.
Implémenter le rappel du jeton de service service-token-callback
Le SDK utilise une interface de rappel pour récupérer un nouveau jeton de service au moment de l’exécution :
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
}
}
Création de l’objet de configuration configuration
Utilisez le créateur de configurations pour configurer le 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();
Utilisez FgEnv.STG pour l’environnement d’évaluation et FgEnv.PRD pour la production.
Création de l’instance cliente client-instance
FloodgateClient fgClient = FloodgateClient.createInstance(configuration);
Récupération des indicateurs de fonctionnalité retrieve-features
Utilisateur authentifié authenticated-user
Utilisez un jeton d’accès IMS pour récupérer les indicateurs de fonctionnalité de l’utilisateur actuel :
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withAccessToken("<USER_ACCESS_TOKEN>")
.withContext(context)
.build();
FeaturesResponse[] features = fgClient.getFeatures(request);
Utilisateur anonyme anonymous-user
Pour les utilisateurs non authentifiés, transmettez un identifiant visiteur et votre jeton de service :
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withServiceToken("<SERVICE_TOKEN>")
.withVisitorId("<VISITOR_ID>")
.withContext(context)
.build();
FeaturesResponse[] features = fgClient.getFeatures(request);
Récupération d’un indicateur de fonctionnalité ou d’une version spécifique specific-feature
Pour récupérer un indicateur de fonctionnalité unique par clé :
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withAccessToken("<ACCESS_TOKEN>")
.withFeatureKey("<FEATURE_KEY>")
.build();
Pour récupérer par clé de version, remplacez .withFeatureKey() par .withReleaseKey().
Vérifier si une fonctionnalité est activée check-feature
boolean isEnabled = FloodgateClient.isFeatureEnabled(features, "MY_FEATURE_FLAG");
if (isEnabled) {
// Serve the new experience
} else {
// Serve the default experience
}
Pour les contrôles basés sur les versions :
boolean isEnabled = FloodgateClient.isFeatureEnabled(features, "MY_RELEASE", "MY_FEATURE_FLAG");
Gestion du cache cache-management
Le SDK met en cache les données d’indicateur de fonctionnalité et les actualise selon un intervalle d’interrogation défini par application dans la console. Pour déclencher une actualisation du cache à la demande :
fgClient.refreshClientCache("<CLIENT_ID>");
Clients non pouvant être mis en cache non-cacheable
Pour les clients non pouvant être mis en cache, getFeature() effectue un appel API en direct à chaque fois. Le SDK poursuit l’interrogation en arrière-plan et bascule vers la diffusion en cache lorsque le client peut être mis en cache. Pris en charge à partir de SDK version 0.8.
Options de configuration configuration-options
Les méthodes de configuration facultatives suivantes sont disponibles dans le créateur :
.alwaysCache().neverCache().withHttpClient(client).withScheduledExecutorService(executor).includeControlGroup()Gérer les erreurs error-handling
Enveloppez les appels getFeatures() pour capturer les exceptions SDK :
try {
features = fgClient.getFeatures(request);
} catch (FgClientException e) {
int statusCode = e.getStatusCode();
// Handle error and serve default experience
} catch (FgInitException e) {
e.printStackTrace();
}