Pular para o conteúdo principal

Módulo de Recursos Dinâmicos

O Módulo de Recursos Dinâmicos fornece acesso a recursos dinâmicos (configurações) que controlam o comportamento e a aparência da aplicação. Recursos dinâmicos permitem configuração dinâmica sem a necessidade de alterações no código ou nova implantação.

Acessando o Módulo

O Módulo de Recursos Dinâmicos pode ser acessado através da instância GamanzaEngageWebClientSDK:

const sdk = GamanzaEngageWebClientSDK.getInstance();
const featureFlags = sdk.FeatureFlags;

Métodos

getFeatureFlagValue

Retorna o valor de um recurso dinâmico específico, identificado pela sua chave.

getFeatureFlagValue(featureFlagKey)

Parâmetros

NomeTipoDescrição
featureFlagKeystringO identificador exclusivo para o recurso dinâmico

Retornos

  • Promise<T | null>: Uma promessa que resolve para o valor do recurso dinâmico com o tipo especificado, ou null se o recurso dinâmico não for encontrado.

Exemplo

// Obter um recurso dinâmico booleano
const isFeatureEnabled = await sdk.FeatureFlags.getFeatureFlagValue('my-feature-enabled');

// Obter um recurso dinâmico de string
const featureConfig = await sdk.FeatureFlags.getFeatureFlagValue('feature-config');

// Obter um recurso dinâmico de objeto complexo
const featureSettings = await sdk.FeatureFlags.getFeatureFlagValue('feature-settings');
// featureSettings pode conter: { enabled: true, maxAttempts: 3, displayName: "Feature Name" }

getFeatureFlags (Obsoleto)

Retorna todos os recursos dinâmicos disponíveis para a instância atual.

getFeatureFlags()

Observação: Este método está obsoleto. Por favor, use getFeatureFlagValue em vez disso.

Retornos

  • Promise<Array>: Uma promessa que resolve para uma matriz de todos os recursos dinâmicos disponíveis.

Exemplo

// Obter todos os recursos dinâmicos (obsoleto)
const allFlags = await sdk.FeatureFlags.getFeatureFlags();

Interfaces

FeatureFlag

Representa um recurso dinâmico com seus metadados e valor.

O objeto FeatureFlag tem a seguinte estrutura:

PropriedadeTipoDescrição
keystringIdentificador exclusivo para o recurso dinâmico
scopestringEscopo do recurso dinâmico (ex.: "global", "user", etc.)
descriçãostringDescrição detalhada do que o recurso dinâmico controla
displayNamestringNome legível para o recurso de recurso
ocultobooleanoIndica se o recurso de recurso deve ser ocultado das interfaces do usuário
estáticobooleanoIndica se o valor do recurso de recurso é estático (imutável)
tipostringTipo de dados do valor do recurso de recurso (por exemplo, "booleano", "string", "objeto")
valorqualquerO valor atual do recurso de recurso
padrãoqualquerO valor padrão do recurso de recurso se nenhum valor for definido

Comportamento de Cache

O Módulo de Recursos de Recurso implementa cache para melhorar o desempenho:

  • Os valores dos recursos de recursos são armazenados em cache no IndexedDB por 30 minutos
  • Ao solicitar um valor específico de recurso de recurso, o módulo primeiro verifica o cache
  • Se o valor não estiver no cache, ele será buscado do servidor e então armazenado em cache
  • O cache é limpo automaticamente quando a sessão do SDK é fechada

Tratamento de Erros

Se um recurso de recurso não for encontrado, o método getFeatureFlagValue retorna null. Sua aplicação deve tratar esse caso adequadamente, geralmente recorrendo a um comportamento padrão.