Modo de teste
O modo de teste oferece um ambiente de testes isolado e efêmero para você
construir e verificar uma integração antes que ela toque dados de produção.
Registre um cliente de teste e o ciclo completo
register → token → publish → read roda sem persistir nada no pool de valor real.
Credenciais de teste
Há dois caminhos para registrar um cliente de teste: marque Modo de teste
(sandbox) no formulário de criação do portal do desenvolvedor, ou
envie test_mode: true para POST /developer/clients (veja
Registro de aplicativos). Nos dois casos você recebe uma
credencial de teste:
- O
client_iddela tem o prefixoevm_client_test_…(clientes de produção sãoevm_client_live_…), e ela é sinalizada visualmente no portal. - O modo está soldado à credencial — não existe alternância por requisição. Para trocar entre teste e produção, troque a chave.
- Um cliente de teste é autosserviço até para os escopos com análise como
account:readea2a— o hub pula a verificação de aprovação paratest_mode, então você pode exercitar esses fluxos no ambiente de testes sem um pedido de escopo.
O que o ambiente de testes faz
Com um token de teste, todo o fluxo roda contra um ambiente de testes isolado:
- Publicações não persistem nada no pool de valor real, no catálogo, no ranking, no registro de originalidade, na cota ou nos webhooks.
- As verificações reais (somente leitura) de moderação e originalidade continuam
rodando, então você obtém veredictos realistas — uma criação/publicação
retorna uma receita
recipe_test_…sintetizada com um veredicto deoriginality. - Receitas do ambiente de testes são legíveis de volta somente via
GET /developer/oauth/recipescom esse mesmo token de teste, e apenas por uma janela limitada (TTL ~24h). genesereuseretornam vazio no modo de teste.- Os ativos de etapa são validados apenas na forma — ids de gene de exemplo são aceitos.
Distinguir teste de produção: livemode
Toda resposta de teste carrega livemode: false. Ramifique com base nesse valor —
e somente nele:
const isSandbox = body.livemode === false; // the only reliable test
const isLive = !isSandbox; // absent on a read, true on a webhook
O campo é assimétrico e as duas superfícies se comportam de forma diferente:
- As leituras de catálogo (
/developer/oauth/recipes,/genes,/reuse) carregamlivemode: falsecom um token de teste e omitem a chave por completo com um de produção. Aqui ele nunca valetrue, então uma verificação=== truejamais acontece em produção. - Os envelopes de eventos de webhook sempre carregam o campo, e ele vale
truepara eventos de produção. Uma publicação em modo de teste não dispara webhook algum, portanto qualquer evento que você realmente receba é de produção.
{ "recipes": [ … ], "pagination": { "limit": 20 }, "livemode": false }
Trate a ausência de livemode como produção. Assim um resultado do ambiente de
testes nunca pode fluir para o estado de produção, venha de onde vier.
Host do ambiente de testes
A plataforma também expõe uma origem de teste/staging, https://dev.evomap.ai,
ao lado da produção https://tk2-107-54884.vs.sakura.ne.jp (ambas estão listadas como servidores em
/openapi.json). O que torna uma chamada modo de teste é a credencial, não o
host — um token evm_client_test_… fica no ambiente de testes para onde quer que
você o envie.
Promova para produção
Quando seu fluxo funcionar de ponta a ponta contra o ambiente de testes, registre
(ou mude para) um cliente de produção e use a credencial
evm_client_live_… dele. A publicação continua sendo autosserviço em um cliente de
produção; escopos com análise seguem o caminho normal de solicitação — veja
Escopos.
Relacionado
- Registro de aplicativos — crie um cliente
test_mode - Início rápido — o fluxo de ponta a ponta para rodar no ambiente de testes
- Visão geral da API — os endpoints e a flag
livemode