Guia de integração do Java SDK java-sdk-integration-guide
A Experience Rollups do Java SDK é uma biblioteca do lado do servidor que armazena dados de sinalizadores de recursos em cache localmente e avalia sinalizadores sem uma chamada de API síncrona em cada solicitação. Este guia aborda a SDK atual (4.x).
Pré-requisitos prerequisites
Antes de integrar o Java SDK, verifique se você tem:
- JDK 11 ou posterior (necessário a partir do SDK versão 3.0.0; versões anteriores são compatíveis com JDK 8+)
- Um sistema de compilação baseado em Maven
- Uma ID de cliente do Chave de API e do token de serviço do seu projeto do Adobe Developer Console — entre em contato com o suporte a Implantações de Experiência para que sua ID de cliente seja incluída na lista de permissões
- Suas IDs de clientes de aplicativos registradas no console de Implantações de Experiência — consulte Integrar seu aplicativo
Adicionar a dependência do Maven maven-dependency
Adicione a experiência Implantações de Java SDK ao pom.xml do seu projeto:
<dependency>
<groupId>com.adobe.cloudtech</groupId>
<artifactId>fg-client-sdk</artifactId>
<version>4.0.6</version>
</dependency>
Inicializar o SDK initialize
O SDK é inicializado uma vez na inicialização do aplicativo usando FloodgateClient.createInstance(). O método pega um objeto FloodgateConfiguration que você compila com o construtor de configurações.
Implementar o retorno de chamada do token de serviço service-token-callback
O SDK usa uma interface de retorno de chamada para recuperar um token de serviço novo no tempo de execução:
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
}
}
Criar o objeto de configuração configuration
Use o construtor de configurações para configurar o 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();
Use FgEnv.STG para o ambiente de Preparo e FgEnv.PRD para Produção.
Criar a instância do cliente client-instance
FloodgateClient fgClient = FloodgateClient.createInstance(configuration);
Recuperar sinalizadores de recursos retrieve-features
Usuário autenticado authenticated-user
Usar um token de acesso IMS para recuperar sinalizadores de recursos para o usuário atual:
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withAccessToken("<USER_ACCESS_TOKEN>")
.withContext(context)
.build();
FeaturesResponse[] features = fgClient.getFeatures(request);
Usuário anônimo anonymous-user
Para usuários não autenticados, transmita uma ID de visitante e o token de serviço:
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withServiceToken("<SERVICE_TOKEN>")
.withVisitorId("<VISITOR_ID>")
.withContext(context)
.build();
FeaturesResponse[] features = fgClient.getFeatures(request);
Recuperar um sinalizador ou versão de recurso específico specific-feature
Para recuperar um único sinalizador de recurso por chave:
GetFeatureRequest request = GetFeatureRequestBuilder
.aGetFeatureRequest("<CLIENT_ID>")
.withAccessToken("<ACCESS_TOKEN>")
.withFeatureKey("<FEATURE_KEY>")
.build();
Para recuperar por chave de versão, substitua .withFeatureKey() por .withReleaseKey().
Verificar se um recurso está habilitado check-feature
boolean isEnabled = FloodgateClient.isFeatureEnabled(features, "MY_FEATURE_FLAG");
if (isEnabled) {
// Serve the new experience
} else {
// Serve the default experience
}
Para verificações baseadas em versão:
boolean isEnabled = FloodgateClient.isFeatureEnabled(features, "MY_RELEASE", "MY_FEATURE_FLAG");
Gerenciamento de cache cache-management
O SDK armazena em cache dados de sinalizador de recurso e os atualiza em um intervalo de pesquisa definido por aplicativo no console. Para acionar uma atualização de cache sob demanda:
fgClient.refreshClientCache("<CLIENT_ID>");
Clientes não armazenáveis em cache non-cacheable
Para clientes que não podem ser armazenados em cache, getFeature() faz uma chamada de API sempre. O SDK continua com a pesquisa em segundo plano e alterna para o serviço baseado em cache quando o cliente se torna armazenável em cache. Compatível a partir da versão 0.8 do SDK.
Opções de configuração configuration-options
Os seguintes métodos de configuração opcionais estão disponíveis no construtor:
.alwaysCache().neverCache().withHttpClient(client).withScheduledExecutorService(executor).includeControlGroup()Manipular erros error-handling
Quebrar getFeatures() chamadas para capturar exceções do SDK:
try {
features = fgClient.getFeatures(request);
} catch (FgClientException e) {
int statusCode = e.getStatusCode();
// Handle error and serve default experience
} catch (FgInitException e) {
e.printStackTrace();
}