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
| Nome | Tipo | Descrição |
|---|---|---|
| featureFlagKey | string | O 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
getFeatureFlagValueem 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:
| Propriedade | Tipo | Descrição |
|---|---|---|
| key | string | Identificador exclusivo para o recurso dinâmico |
| scope | string | Escopo do recurso dinâmico (ex.: "global", "user", etc.) |
| descrição | string | Descrição detalhada do que o recurso dinâmico controla |
| displayName | string | Nome legível para o recurso de recurso |
| oculto | booleano | Indica se o recurso de recurso deve ser ocultado das interfaces do usuário |
| estático | booleano | Indica se o valor do recurso de recurso é estático (imutável) |
| tipo | string | Tipo de dados do valor do recurso de recurso (por exemplo, "booleano", "string", "objeto") |
| valor | qualquer | O valor atual do recurso de recurso |
| padrão | qualquer | O 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.