Skip to content

Avaliação

Os endpoints de avaliação são o núcleo do FlagBridge. Eles determinam se uma flag está habilitada para um dado contexto de usuário.

POST /v1/evaluate

Avalia uma única flag.

Auth: Live key, Test key ou Admin key

Corpo da requisição

json
{
  "flagKey": "novo-checkout",
  "context": {
    "userId": "user-123",
    "country": "BR",
    "plan": "pro"
  }
}

Resposta

json
{
  "flagKey": "novo-checkout",
  "enabled": true,
  "variant": null,
  "reason": "TARGETING_RULE_MATCH",
  "ruleId": "rule_abc123",
  "evaluatedAt": "2026-03-31T20:00:00.000Z"
}

Razões de avaliação

RazãoDescrição
FLAG_DISABLEDFlag globalmente desabilitada
FLAG_ENABLEDFlag globalmente habilitada (sem regras)
TARGETING_RULE_MATCHUma regra de targeting correspondeu
PERCENTAGE_ROLLOUTIncluído no rollout por porcentagem
PERCENTAGE_ROLLOUT_EXCLUDEDExcluído do rollout por porcentagem
TEST_OVERRIDESobrescrito por uma sessão de teste
FLAG_NOT_FOUNDFlag não existe (retorna enabled: false)

Exemplos

bash
curl -X POST https://api.flagbridge.io/v1/evaluate \
  -H "Authorization: Bearer fb_live_SUA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "flagKey": "novo-checkout",
    "context": { "userId": "user-123", "plan": "pro" }
  }'
typescript
const resultado = await client.evaluate('novo-checkout', {
  userId: 'user-123',
  plan: 'pro',
});

POST /v1/evaluate/batch

Avalia múltiplas flags em uma única requisição.

Corpo da requisição

json
{
  "flags": ["novo-checkout", "modo-escuro", "sidebar-v2"],
  "context": { "userId": "user-123" }
}

Resposta

json
{
  "results": {
    "novo-checkout": { "enabled": true, "reason": "TARGETING_RULE_MATCH" },
    "modo-escuro": { "enabled": false, "reason": "FLAG_DISABLED" },
    "sidebar-v2": { "enabled": true, "variant": "compacto", "reason": "PERCENTAGE_ROLLOUT" }
  },
  "evaluatedAt": "2026-03-31T20:00:00.000Z"
}

INFO

Prefira o batch quando precisar de várias flags ao mesmo tempo — usa apenas um round-trip de rede.

Header de sessão de teste

Para testes E2E, passe o token da sessão no header X-FlagBridge-Session. Veja a API de Testing para criar sessões.