Guia de integração do SDK Node.js nodejs-sdk-integration-guide
A SDK Node.js de implantações de experiência é uma biblioteca do lado do servidor destinada aos serviços Node.js. Ele armazena dados de sinalizador de recursos em cache localmente e avalia sinalizadores sem uma chamada de API síncrona em cada solicitação.
Pré-requisitos prerequisites
Antes de integrar o SDK Node.js, verifique se você tem:
- Um aplicativo do lado do servidor Node.js
- Uma Chave de API e um token de serviço obtidos por meio do Adobe Developer Console — entre em contato com o suporte de Implantações de Experiência para obter sua ID de cliente
- Suas IDs de clientes de aplicativos registradas no console de Implantações de Experiência — consulte Integrar seu aplicativo
Instalar o SDK install
Adicione a SDK ao package.json do seu projeto:
"@floodgate/fg-client-sdk": "~1.0.10"
Em seguida, exija-o no código:
const { floodgateClient } = require('@floodgate/fg-client-sdk');
Inicializar o SDK initialize
Chamar createInstance() uma vez na inicialização do aplicativo:
floodgateClient.createInstance(
{
adobeIoApiKey: "<YOUR_API_KEY>",
clientIds: ["<CLIENT_ID_1>", "<CLIENT_ID_2>"],
env: "PRD", // Use "STG" for Stage
featureRequestHttpParams: {
timeout: 60 * 1000 // Optional: request timeout in ms
},
ingestAnalyticsHttpParams: {
timeout: 5 * 1000 // Optional: analytics timeout in ms
}
},
function(cb) {
// Fetch a fresh service token from IMS and pass it in the callback
cb(null, SERVICE_TOKEN);
},
function() {
return true; // Return false to disable analytics
},
function(response) {
// Called when the SDK initializes successfully
console.log("SDK initialized");
},
function(err) {
// Called if initialization fails
console.error("SDK init error:", err);
}
);
Recuperar sinalizadores de recursos retrieve-features
Sinalizadores de recursos são retornados de forma assíncrona em um retorno de chamada. Escolha o método apropriado com base no contexto do usuário.
Usuário autenticado authenticated-user
floodgateClient.getFeatures(
{
userAccessToken: "<USER_ACCESS_TOKEN>",
visitorId: "<VISITOR_ID>",
clientId1: "<CLIENT_ID>",
meta: true
},
function(err, features) {
if (err) {
// Handle error and serve default experience
return;
}
const isEnabled = floodgateClient.isFeatureEnabled(features, "MY_FEATURE_FLAG");
// Serve experience based on isEnabled
}
);
Usuário anônimo anonymous-user
Quando nenhum token de acesso do usuário estiver disponível, use um sinalizador de liberação ou omita o token para receber versões de implantação completa:
floodgateClient.getFeatures(
{
releaseFlag: "<RELEASE_FLAG>",
visitorId: "<VISITOR_ID>",
clientId1: "<CLIENT_ID>",
meta: false
},
callback
);
Versões padrão de implantação completa default-releases
Quando nenhum token de acesso ou sinalizador de liberação é fornecido, o SDK retorna recursos no estado Implantação completa ou Linha de base:
floodgateClient.getFeatures(
{
clientId1: "<CLIENT_ID>",
visitorId: "<VISITOR_ID>",
meta: false
},
callback
);
Verificar se um recurso está habilitado check-feature
const isEnabled = floodgateClient.isFeatureEnabled(features, "MY_FEATURE_FLAG");
if (isEnabled) {
// Serve the new experience
} else {
// Serve the default experience
}
Habilitar log de depuração debug-logging
Para habilitar logs detalhados do SDK, passe uma instância de agente de depuração ao chamar createInstance():
const bunyan = require('bunyan');
const logger = bunyan.createLogger({ name: "fg", sourceType: "SDK", level: "debug" });
floodgateClient.createInstance(
{ ..., log: logger },
...
);