Você viu um aplicativo fazer uma requisição no navegador. Funcionou. Os dados estão na aba Rede (Network). Agora você quer transformar essa chamada em um endpoint documentado, reutilizável, simulável (mock) e testável, sem redigitar URL, cabeçalhos e corpo JSON manualmente.
Essa lacuna entre “tráfego que posso ver” e “um endpoint que posso reutilizar” é o que um arquivo HAR preenche. O navegador já registra requisições e respostas. Exporte essa gravação, importe-a no Apidog e transforme cada chamada capturada em um endpoint no projeto.
Este guia mostra como:
- Capturar um HAR no Chrome DevTools.
- Importá-lo com opções que evitam ruído.
- Organizar os endpoints gerados.
- Reutilizar a captura para documentação, mocks e testes.
Para outros fluxos de captura, consulte o guia sobre ferramentas de captura de pacotes com Apidog.
Você pode baixar o Apidog gratuitamente e acompanhar o processo.
O que é um arquivo HAR e por que manter o tráfego capturado
HAR significa HTTP Archive. Um arquivo .har é um JSON que registra a interação entre o navegador e um site: requisições, respostas, cabeçalhos, corpos e tempos.
Na prática, um HAR é uma transcrição de uma sessão de navegação. Ele pode incluir:
- Requisições
GET,POST,PUT,DELETEe outros métodos. - URLs completas e parâmetros de consulta.
- Cabeçalhos de autenticação.
- Corpos JSON enviados e recebidos.
- Códigos de status e tempos de resposta.
Como o formato é JSON, você pode anexá-lo a um bug report, compartilhá-lo internamente ou importá-lo em ferramentas que entendem HAR.
Ao transformar uma captura em endpoints, você obtém:
- Um formato de requisição real: URL, query params, cabeçalhos e corpo usados pelo aplicativo.
- Uma resposta real: status HTTP e payload retornados pelo servidor.
- Um ponto de partida para documentação: chamadas internas deixam de ser apenas tráfego e passam a ser endpoints nomeados.
Esse fluxo é útil quando você:
- Herdou um serviço sem uma especificação OpenAPI.
- Precisa entender como um widget de terceiros conversa com o backend.
- Quer reproduzir um bug usando a chamada exata que o disparou.
- Precisa criar rapidamente uma coleção de endpoints a partir de um sistema existente.
Passo 1: capture o HAR nas Ferramentas de Desenvolvedor
A captura ocorre no navegador, não no Apidog. Chrome e Edge usam DevTools semelhantes, portanto o fluxo é praticamente idêntico.
Suponha que você queira capturar as chamadas feitas pela tela de histórico de pedidos.
- Abra a página que deseja gravar.
- Faça login antes de iniciar a captura caso a API dependa de sessão ou token.
- Abra o DevTools:
F12-
Ctrl+Shift+Ino Windows/Linux -
Cmd+Opt+Ino macOS
- Abra a aba Rede (Network).
- Atualize a página ou execute as ações que deseja registrar.
- Clique com o botão direito em uma requisição da lista.
- Escolha Salvar tudo como HAR com conteúdo.
- Salve o arquivo, por exemplo:
order-history.har
A opção com conteúdo é importante: ela inclui os corpos das respostas. Sem ela, a importação pode ter os formatos das requisições, mas não terá exemplos completos de resposta.
Se quiser revisar o arquivo antes de importar, abra o .har em um editor. Você encontrará um JSON com um array entries. Cada item normalmente inclui objetos request e response.
{
"log": {
"entries": [
{
"request": {
"method": "GET",
"url": "https://api.shop.example.com/v1/orders/123"
},
"response": {
"status": 200
}
}
]
}
}
Um HAR também inclui imagens, CSS, JavaScript e outros recursos estáticos carregados pela página. Não é necessário filtrá-los manualmente no navegador: você pode excluí-los durante a importação.
Para mais detalhes sobre a aba Rede, consulte a referência de Rede do Chrome DevTools.
Passo 2: importe o HAR para o Apidog
Com o arquivo salvo, importe-o no projeto:
- Abra seu projeto no Apidog.
- Vá para Configurações (Settings) > Importar Dados (Import Data) > Manual.
- Selecione o formato HAR.
- Envie o arquivo
.har, comoorder-history.har.
Antes de confirmar, configure as opções de importação.
Opção 1: tratamento da BaseURL
Cada requisição capturada contém uma URL completa, por exemplo:
https://api.shop.example.com/v1/orders/123
O importador oferece duas estratégias:
- Hardcode (Fixar): mantém a BaseURL completa em cada endpoint.
- Remove (Remover — Recomendado): remove o host e mantém apenas o caminho.
Com Remover, o endpoint fica assim:
/v1/orders/123
A BaseURL passa a ser controlada por uma variável de ambiente. Isso permite alternar entre produção, staging e ambiente local sem editar cada endpoint.
Exemplo de variável de ambiente:
baseUrl = https://api.shop.example.com
Depois, você pode usar:
{{baseUrl}}/v1/orders/{orderId}
Escolha Remover na maioria dos casos. Use Fixar apenas quando você realmente precisa manter a URL completa dentro de cada endpoint.
Para entender o uso de ambientes, consulte como a BaseURL pode ser gerenciada globalmente por meio de variáveis de ambiente.
Opção 2: excluir recursos estáticos
Ative Recurso Estático (Static Resource) > Excluir (Exclude).
Isso remove itens como:
- Imagens.
- Arquivos CSS.
- Arquivos JavaScript.
- Fontes.
- Outros assets da página.
Sem esse filtro, uma única página pode gerar dezenas de entradas irrelevantes. Com ele, a lista tende a ficar focada nas chamadas da API:
GET /api/orders
GET /api/orders/123
POST /api/orders
Opção 3: gerar um caso de teste por endpoint
A opção Geração de Caso de Endpoint (Endpoint Case Generation) cria um caso executável para cada endpoint importado.
Ative essa opção se você pretende testar as chamadas logo após importar. O Apidog cria casos com os valores capturados já preenchidos, reduzindo o trabalho manual.
Deixe desativada se seu objetivo imediato for apenas documentar ou limpar os endpoints primeiro.
Depois de revisar as opções, confirme a importação.
Um endpoint importado pode se parecer com isto:
GET /v1/orders/123
Host: api.shop.example.com
Authorization: Bearer <token-from-capture>
Accept: application/json
A resposta capturada pode ficar associada ao endpoint como exemplo:
{
"id": 123,
"status": "shipped",
"total": 48.5,
"currency": "USD",
"items": [
{
"sku": "TSHIRT-BLK-M",
"qty": 2,
"price": 19.25
}
],
"createdAt": "2026-07-14T09:31:00Z"
}
Esse payload pode servir como base para documentação, mock ou asserções de teste.
Passo 3: organize os endpoints gerados
A importação do HAR cria um primeiro rascunho da API. Reserve alguns minutos para transformar as chamadas capturadas em endpoints reutilizáveis.
Elimine o ruído
Mesmo excluindo recursos estáticos, a captura pode conter:
- Eventos de analytics.
- Health checks.
- Telemetria.
- Chamadas para serviços de terceiros.
- Endpoints internos que não fazem parte da API que você deseja manter.
Exclua o que não será usado. A árvore de endpoints deve refletir a API que sua equipe realmente mantém ou consome.
Renomeie e agrupe
Um caminho capturado é funcional, mas não necessariamente descritivo.
Em vez de manter:
GET /v1/orders/123
renomeie para algo como:
Obter pedido por ID
Organize os endpoints em pastas por domínio:
Pedidos
├── Listar pedidos
├── Criar pedido
├── Obter pedido por ID
└── Cancelar pedido
Clientes
├── Listar clientes
└── Obter cliente por ID
Converta valores capturados em parâmetros de caminho
Uma captura específica:
GET /v1/orders/123
pode ser importada como um caminho literal. Se 123 representa um ID variável, altere o endpoint para:
GET /v1/orders/{orderId}
Defina o parâmetro:
| Nome | Local | Exemplo |
|---|---|---|
orderId |
Path | 123 |
Esse ajuste transforma uma chamada única em um endpoint reutilizável para qualquer pedido.
Mova segredos para variáveis de ambiente
HARs podem incluir tokens, cookies e cabeçalhos reais da sessão. Não compartilhe o arquivo sem revisar seu conteúdo.
Por exemplo, substitua:
Authorization: Bearer eyJhbGciOi...
por:
Authorization: Bearer {{accessToken}}
Armazene o valor em uma variável de ambiente:
accessToken = <token-do-ambiente>
Antes de compartilhar o projeto:
- Remova tokens e cookies dos exemplos.
- Use variáveis de ambiente para credenciais.
- Evite anexar HARs em issues públicas.
- Revogue tokens expostos acidentalmente.
A documentação do Stripe segue a mesma orientação: chaves de produção não devem aparecer em artefatos compartilhados.
Verifique os corpos de requisição e resposta
Se um endpoint foi importado sem o corpo que você esperava, verifique se o HAR foi exportado usando Salvar tudo como HAR com conteúdo.
Se necessário:
- Recapture a sessão.
- Exporte novamente com conteúdo.
- Reimporte o arquivo.
- Compare o endpoint gerado com a captura original.
Depois da limpeza, os endpoints funcionam como qualquer outro endpoint do Apidog: você pode documentá-los, criar mocks e automatizar testes.
Próximos passos úteis:
Variações e limites reais
Ainda não há um gravador automático
O Apidog não atua como um proxy que fica em segundo plano gravando automaticamente o tráfego do navegador.
O fluxo suportado é:
- Capturar no DevTools.
- Exportar o arquivo HAR.
- Importar o HAR no Apidog.
- Ajustar os endpoints.
- Criar cenários de teste quando necessário.
Ou seja, a captura é manual e a importação é direta. Não espere uma gravação ao vivo dentro do Apidog para esse caso de uso.
A Extensão do Navegador Apidog é uma ferramenta diferente
A Extensão do Navegador Apidog não substitui a exportação HAR do DevTools.
Ela é voltada a executar e depurar requisições no navegador, não a gravar uma sessão de tráfego como HAR.
Além disso, extensões de navegador podem ter restrições impostas pelo próprio navegador, incluindo limitações em cabeçalhos como:
CookieHostOriginContent-Length
Elas também não enviam corpos em requisições GET ou HEAD e não acessam diretamente recursos locais protegidos pela máquina.
Para importar tráfego capturado, use o DevTools e a exportação HAR. Para depuração que exige controle completo de cabeçalhos, use o cliente desktop.
Outros formatos usam a mesma tela de importação
A tela Configurações (Settings) > Importar Dados (Import Data) > Manual também aceita outros formatos, como OpenAPI, Swagger e coleções de ferramentas de API.
Se você já possui uma especificação, prefira importá-la: uma definição OpenAPI costuma gerar resultados mais limpos do que uma captura HAR porque já descreve a API de forma estruturada.
Consulte também:
- Migrar a documentação da API Swagger para o Apidog
- Migrar ambientes e coleções do Postman para o Apidog
Use HAR quando não houver uma especificação confiável e o tráfego capturado for o melhor registro disponível.
Automatize o fluxo com a CLI do Apidog
Não é obrigatório importar HARs pela interface gráfica. A CLI do Apidog oferece um comando import para ler um arquivo HAR diretamente.
Isso é útil quando:
- A captura ocorre em um servidor.
- Você quer automatizar importações em um pipeline.
- Um agente de IA gera ou processa capturas.
- Você precisa repetir o mesmo fluxo em múltiplos projetos.
Instale e autentique a CLI:
npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>
Importe um HAR:
# Transforme um HAR capturado em endpoints no projeto
apidog import --project <PROJECT_ID> --format har --file ./capture.har
A flag --format também aceita formatos como:
openapi
postman
wsdl
insomnia
Depois de criar e salvar um cenário de teste, execute-o sem interface em CI:
apidog run --access-token $APIDOG_ACCESS_TOKEN \
-t <SCENARIO_ID> \
-e <ENV_ID> \
-r cli
Nesse comando:
-
-té o ID do cenário de teste. -
-eé o ID do ambiente. -
-r cliseleciona a saída no console.
Use o guia para escrever um cenário de teste no Apidog para montar os testes e o guia de CI/CD da CLI do Apidog para integrá-los ao pipeline.
FAQ
Quais navegadores podem exportar um arquivo HAR?
Navegadores baseados em Chromium, como Chrome e Edge, oferecem esse fluxo pelo DevTools usando a aba Rede (Network) e a opção Salvar tudo como HAR com conteúdo.
Outros navegadores também podem exportar HAR, mas os nomes dos menus podem variar.
Minha lista de endpoints importados está enorme. O que deu errado?
Provavelmente você importou recursos estáticos junto com as chamadas da API.
Reimporte o arquivo com:
Recurso Estático (Static Resource) > Excluir (Exclude)
Depois, remova manualmente qualquer evento de analytics, health check ou chamada de terceiro que ainda permaneça.
Devo escolher “Hardcode” ou “Remove” para a BaseURL?
Escolha Remover (Remove — Recomendado) na maioria dos casos.
Isso permite usar uma variável de ambiente para alternar a BaseURL:
Produção: https://api.example.com
Staging: https://staging-api.example.com
Local: http://localhost:3000
Assim, o mesmo endpoint pode ser executado em diferentes ambientes sem editar o caminho.
A mesma configuração é usada quando você executa cenários de teste no Apidog.
O HAR inclui meus tokens de autenticação?
Sim. Um HAR registra cabeçalhos e cookies enviados durante a sessão, incluindo bearer tokens e credenciais ativas.
Trate o arquivo como um segredo:
- Não publique o HAR.
- Não envie-o para issues públicas.
- Mova tokens para variáveis de ambiente após importar.
- Limpe credenciais de exemplos compartilhados.
Posso importar um HAR pela linha de comando?
Sim. Use:
apidog import --project <id> --format har --file <path>
A CLI é especialmente útil para importações automatizadas, capturas feitas em servidores ou fluxos de CI.
A interface gráfica continua sendo útil quando você quer ajustar interativamente opções como tratamento da BaseURL e exclusão de recursos estáticos.
Depois da importação, use apidog run para executar os cenários de teste criados a partir desses endpoints.
Concluindo
Um arquivo HAR conecta o tráfego que você observa aos endpoints que pode reutilizar.
O fluxo é direto:
- Capture a sessão no DevTools.
- Exporte com Salvar tudo como HAR com conteúdo.
- Importe em Configurações (Settings) > Importar Dados (Import Data) > Manual.
- Use Remover (Remove) para a BaseURL.
- Defina Recurso Estático (Static Resource) como Excluir (Exclude).
- Renomeie endpoints, converta IDs em parâmetros e remova segredos.
O resultado é uma coleção de endpoints reais que você pode documentar, simular e testar.
Pronto para transformar a próxima captura em endpoints? Baixe o Apidog e experimente gratuitamente, sem necessidade de cartão de crédito.
Top comments (0)