Pular para o conteúdo principal

API

O NNumbers WAF tem uma API REST documentada em OpenAPI. É a mesma API que a Console usa: tudo o que você faz na tela pode ser feito por chamada, com a mesma permissão e o mesmo isolamento por organização.

Visão geral​

ItemComo funciona
EstiloREST, corpo em JSON, campos em snake_case
IdentificadoresUUID versão 7, em texto
Datas e horasRFC 3339, em UTC
DocumentaçãoEspecificação OpenAPI publicada com o produto
EscopoSempre a organização da sua sessão

A Console é o caminho recomendado para começar: ela mostra o estado de cada etapa e evita erro de montagem de chamada. A API serve para automação — criar domínio em lote, sincronizar política com o seu provisionamento, puxar eventos para o seu SIEM.

Autenticação​

A autenticação é feita pela Console: você obtém a credencial no seu acesso da NNumbers Console e a usa nas chamadas. Não há usuário e senha próprios do WAF, e a API não aceita credencial de outra organização.

A organização vem da credencial, nunca do corpo, da query ou de um cabeçalho da chamada. Um recurso de outra organização responde 404, e não 403: a existência dele não é revelada.

Permissões​

Cada operação exige uma permissão, coerente com os papéis da Console:

PermissãoCobre
domains.readConsultar domínios, verificação, estado e origem
domains.manageCriar, alterar e remover domínio, origem e verificação
protection.manageAtivar e desativar proteção
policies.readConsultar políticas, regras, exceções e revisões
policies.manageCriar e alterar política e regras
exceptions.manageCriar e remover exceção
events.readConsultar eventos
metrics.readConsultar visão geral e métricas

Chamada sem a permissão necessária responde erro de escopo, com o identificador de correlação para você levar ao suporte.

Paginação​

Listas usam cursor:

ParâmetroValor
limitDe 1 a 200; padrão 50
cursorValor opaco devolvido na resposta anterior

A resposta traz os itens e o cursor seguinte:

{
"items": [],
"next_cursor": "opaco"
}

Quando next_cursor vem nulo, a lista terminou. Não construa cursor por conta própria nem guarde posição por número de página: o cursor é opaco e pode mudar de forma.

Idempotência​

Toda chamada que cria, altera ou remove exige o cabeçalho Idempotency-Key, com 1 a 128 caracteres.

SituaçãoResposta
Primeira chamada com a chaveOperação executada
Repetição com a mesma chave e mesmo corpoA mesma resposta da primeira, marcada como repetida
Repetição com a mesma chave e corpo diferenteConflito de idempotência
Chave já expiradaA chave é descartada depois de 24 horas

Use uma chave por intenção de mudança, gerada uma vez e reaproveitada nas retentativas. É isso que impede um domínio duplicado quando a rede falha no meio.

Alterações também aceitam controle de versão: o recurso tem uma versão inteira, e a chamada pode exigir que a versão continue a mesma. Se outra pessoa alterou antes, a resposta é conflito de versão, e não sobrescrita silenciosa.

Erros​

O erro tem sempre a mesma forma:

{
"error": {
"code": "validation_failed",
"message": "Texto legível sobre o que falhou",
"correlation_id": "identificador da chamada"
}
}
CódigoQuando acontece
unauthorizedCredencial ausente ou inválida
forbidden_scopeCredencial válida sem a permissão da operação
not_foundRecurso inexistente na sua organização
validation_failedCorpo ou parâmetro inválido
conflictConflito com o estado atual
version_conflictA versão exigida não é mais a atual
idempotency_conflictMesma chave de idempotência com corpo diferente
hostname_unavailableHostname já cadastrado por outra organização
invalid_state_transitionA etapa não é válida no estado atual do domínio
verification_failedA verificação de propriedade não passou
origin_rejectedOrigem recusada pelas regras de endereço ou porta
policy_in_usePolítica ainda usada por um domínio
payload_too_largeCorpo acima do limite da API
rate_limitedChamadas acima do limite da API
dependency_unavailableServiço temporariamente indisponível; repita depois

Guarde o correlation_id de toda falha: é o que liga a chamada ao registro do lado da NNumbers, sem precisar reproduzir o erro.

Operações demoradas​

Verificar, ativar, desativar, remover e aplicar política são operações que não terminam na mesma resposta. A chamada responde com o recurso e o estado corrente, e você acompanha pelo estado do domínio — os mesmos estados que a Console mostra.

Próximos passos​