O percurso completo
1
Verifique conectividade e credenciais
200 confirma que a URL base e a api-key estão corretas. Um 401 significa chave inválida ou ambiente errado. Avalie o código de status, não o corpo: os números de versão mudam e não fazem parte do seu contrato.2
Prepare a imagem
Capture ou receba um JPEG, ajuste-o às dimensões recomendadas e converta-o para base64 sem prefixo.
3
Chame POST /inference
Um único JSON com
image, info e logAnonymity.4
Aplique a regra de decisão
status === 200 && spoofing === false aprova. Todo o resto, não.Requisitos da imagem
Converter para base64
-w 0 evita as quebras de linha que o base64 insere a cada 76 caracteres. Sem essa flag a cadeia chega partida e o serviço não consegue decodificá-la.
Corpo da requisição
O campo info na resposta
É aqui que mais integrações quebram. info nem sempre é do mesmo tipo:
Resolva isso em um único lugar e nunca leia
info diretamente:
Timeouts e novas tentativas
Antes de ir para produção
Uma integração está pronta quando você consegue responder sim a tudo isto:- A decisão está escrita na forma positiva:
status === 200 && spoofing === false. - Nenhuma ramificação decide com base em
errorCode,values,confidenceouinfo. infoé lido por meio de um único resolvedor que contempla objeto, string enull.- Em linguagens tipadas,
infoestá declarado como tipo dinâmico ouObject. imageQualitye seus subcampos são lidos como opcionais; nenhuma chave é presumida presente.- As imagens saem em 640 × 480 com qualidade JPEG ≥ 95.
- Existe uma validação prévia que descarta imagens menores que 224 × 224 antes de gastar uma chamada.
- O base64 é gerado sem prefixo
data:e sem quebras de linha. - O timeout está em 30 s.
- As novas tentativas estão limitadas a 2 e apenas para
499e500não determinísticos. - O
idde cada transação fica no seu log, junto com o ambiente e o carimbo de tempo. - A api-key vive somente no backend e está em um gerenciador de segredos, não no código.
- O time sabe que
422 No Face Detectedé um problema de captura e que422 Bad requesté um problema de código.
Respostas
O próximo passo: o que significa cada campo da resposta e como ler o diagnóstico.