MockzillaMockzilla

Gravar e ver replays

Atualizado em 29 de set. de 2026·6 min de leitura

Um replay é uma resposta gravada servida de volta nas requisições que correspondem: você grava uma vez e reproduz para sempre, feito um videocassete. A primeira chamada que corresponde guarda o que a simulação respondeu, gerado ou buscado de um upstream; toda chamada seguinte que corresponder devolve aquela resposta guardada, marcada com o header X-Mockzilla-Source: replay. Use para manter um payload estável entre execuções de teste, para capturar uma vez a resposta de um backend de verdade e depois trabalhar sem ele, ou para escrever na mão a resposta exata que um fluxo precisa.

Como uma gravação corresponde

Cada gravação é arquivada sob uma chave montada com o método, o padrão de caminho, e os campos da requisição que você escolher:

  • Os campos do body são caminhos JSON com pontos (name, data.address.zip, items[0].sku) ou nomes de campo de formulário.
  • Os parâmetros de query vêm da query string da URL.
  • Os parâmetros de caminho são os valores {placeholder} do caminho. Eles são ignorados a não ser que você liste: por padrão /pets/1 e /pets/2 dividem uma gravação, e listar petId dá a cada id a sua.
  • Nenhum campo quer dizer só o caminho: toda requisição para o endpoint divide uma gravação só.

Só os campos escolhidos importam; todo o resto da requisição é ignorado. Duas requisições com os mesmos valores nesses campos recebem a mesma gravação. Se um campo escolhido faltar em uma requisição, o replay pula aquela requisição inteira: nada é gravado e nada é reproduzido.

Gravar sem configurar nada

O caminho mais rápido não precisa de configuração: mande o header X-Mockzilla-Replay. Isso funciona em qualquer simulação publicada.

# Primeira chamada: grava a resposta (aqui: correspondência pelo campo "name" do body)
curl -X POST "https://api.mockz.io/app/your-org/your-sim/petstore/pets" \
  -H "Content-Type: application/json" \
  -H "X-Mockzilla-Replay: name" \
  -d '{"name": "Rex", "tag": "checkout-flow"}'

# Toda chamada seguinte com name=Rex: devolve exatamente a mesma resposta
curl -X POST "https://api.mockz.io/app/your-org/your-sim/petstore/pets" \
  -H "Content-Type: application/json" \
  -H "X-Mockzilla-Replay: name" \
  -d '{"name": "Rex", "tag": "different-tag-does-not-matter"}'

Olhe os headers da resposta: a primeira chamada diz X-Mockzilla-Source: generated (ou upstream), a segunda diz X-Mockzilla-Source: replay.

O header nomeia os campos pelos quais corresponder. Nomes soltos são campos do body; os prefixos escolhem outras fontes, e ; separa eles:

# Vazio: usa a chave de correspondência configurada no app, ou só o caminho
-H "X-Mockzilla-Replay:"

# Dois campos do body
-H "X-Mockzilla-Replay: biller,reference"

# Campos de body, query e caminho juntos
-H "X-Mockzilla-Replay: body:reference;query:channel;path:paymentMethod"

Configurar no app

A configuração substitui o header: os clientes chamam a simulação como qualquer outra API e as regras de gravação vivem junto da simulação. Abra Replays na barra lateral e escolha um serviço.

A visão Replays de um serviço: configurações de gravação e a tabela de endpoints
  1. Ligue a gravação. O padrão do app vale para todo serviço; um serviço pode sobrescrever. A pílula ao lado do título diz se a gravação está ligada para o que você está olhando.
  2. Escolha um endpoint e defina a chave de correspondência dele. A tabela mostra cada endpoint, a chave de correspondência dele e quantas gravações ele tem. Clique em uma linha:
O editor da chave de correspondência com um campo do body e os exemplos de header

O editor mostra o header X-Mockzilla-Replay exato para a chave que você montar, pronto para copiar. Ligar o replay aqui liga aquele endpoint sozinho; endpoints sem chave de correspondência dividem uma gravação por caminho.

  1. Replay automático, nas configurações do serviço, grava e reproduz os endpoints configurados sem nenhum header. Ligue quando o código que chama não puder ser mudado.
  2. Gravar só o upstream é para capturar um backend de verdade: as respostas geradas não são gravadas e devolvem um 502 no lugar, então uma sessão de gravação não enche de dado de mock sem ninguém ver.
  3. TTL define quanto tempo as gravações do upstream duram, caindo para o padrão do app, de 24 horas.
As chaves de correspondência, o replay automático e as outras configurações daqui vão no próximo deploy. As gravações em si são ao vivo: crie, edite ou apague uma e a simulação no ar serve a mudança na hora.

Ver e editar as gravações

O painel de cada endpoint lista as gravações dele pelos valores de correspondência, pelo status e pela origem: upstream foi capturada de um backend de verdade, generated do mock, manual foi escrita na mão.

Uma gravação aberta para edição: status, tipo de conteúdo e corpo da resposta
  • Edite o status, o tipo de conteúdo ou o corpo e salve; daí em diante o runtime serve a resposta editada para aquela chave. Gravar e depois ajustar o payload costuma ser mais rápido que escrever do zero.
  • Nova gravação cria uma na mão antes de existir tráfego: defina os valores de correspondência, o status e o corpo, e o endpoint responde com ela desde a primeira requisição.
  • Excluir gravação remove uma chave; Excluir todas esvazia o endpoint.
  • As gravações do upstream expiram com o TTL. As manuais e as geradas não têm TTL e ficam até você apagar.

Uma gravação feita com um header improvisado em um caminho sem endpoint configurado aparece aqui do mesmo jeito, agrupada sob o caminho dela, então nada do que foi gravado fica invisível.

As chamadas reproduzidas aparecem no Histórico como qualquer outra requisição; o header da resposta é o que nomeia o replay como origem delas.

Veja Histórico de requisições.

O que ganha quando os recursos se empilham

Um acerto de replay corta caminho cedo: se uma gravação corresponde, ela responde, antes do cache e antes de o upstream ser chamado. Sem gravação correspondente a requisição segue como sempre, e na volta a resposta é capturada para a próxima vez. A injeção de latência e de erro continua valendo na ida, então um endpoint com replay pode continuar lento ou falhar de propósito.

Mover gravações entre simulações ou compartilhar elas com o time tem a própria página.

Veja Exportar e importar replays.

Esta página ajudou?