UStackUStack
Decoy icon

Decoy

Decoy é um servidor mock nativo do macOS para simular APIs e webhooks localmente: defina endpoints, inspecione requests e retorne respostas.

Decoy

O que é Decoy?

Decoy é um servidor mock nativo do macOS para desenvolvedores que precisam simular endpoints HTTP e comportamento de webhooks localmente. Ele permite definir rotas, inspecionar requests recebidos e retornar respostas mock controladas para testar wrappers de API, manipulação de requests, redirecionamentos e modos de falha sem precisar levantar serviços externos.

O propósito principal do Decoy é teste local sob demanda: você aponta seu cliente para o domínio e porta locais do Decoy, observa cada request ao chegar e ajusta as respostas dos endpoints para exercitar seu código nos cenários que escolher.

Principais Recursos

  • App nativo do macOS com inicialização instantânea: Executa como uma aplicação SwiftUI e inicia rapidamente sem precisar de Docker, túneis na nuvem ou passos de configuração.
  • Controles de endpoints e request/response: Defina pares método + caminho, agrupados em projetos, e escolha códigos de status de resposta, tipo de corpo, headers e atraso opcional.
  • Inspeção de requests em tempo real: Todo request recebido é exibido com headers, corpo, IP de origem, timestamps e identificadores de request (UUID). Corpos JSON são formatados automaticamente.
  • Caminhos e projetos parametrizados: Suporte a parâmetros de caminho (ex.: /users/:id combina com /users/42) e organização de endpoints em projetos.
  • Formatos de resposta para cenários web comuns: Escolha entre texto simples, JSON, HTML, XML, arquivo, vazio ou redirecionamento; configure headers Location automaticamente para redirecionamentos.
  • Suporte a navegador e CORS: Requests baseados em navegador “funcionam direto”, com headers CORS adicionados automaticamente. Códigos de status de redirecionamento (301, 302, 307, 308) são suportados.
  • Snapshots e exportações de request/response: Veja o que foi realmente enviado de volta para cada request e exporte requests como cURL, JavaScript fetch ou Ruby.
  • Log durável de requests via SQLite: Requests são gravados no SQLite imediatamente para que os dados não sejam perdidos se o app fechar inesperadamente.

Como Usar o Decoy

  1. Instale o Decoy na Mac App Store e inicie o app no macOS 14 Sonoma ou posterior.
  2. Crie ou selecione um projeto, depois defina endpoints usando um par método e caminho.
  3. Configure a resposta mock de cada endpoint: defina um código de status, escolha um tipo de corpo (incluindo JSON, HTML, XML ou arquivo), adicione headers e opcionalmente defina um atraso.
  4. Aponte seu app ou ferramenta de teste para o domínio e porta locais do Decoy (decoy.my:8998 é referenciado na descrição do produto).
  5. Envie requests do seu cliente ou navegador. O Decoy exibirá os detalhes de cada request recebido e aplicará mudanças na resposta no próximo request.

Casos de Uso

  • Teste de manipulação de webhooks e casos de borda: Envie requests de webhook para o Decoy para confirmar como seu código processa diferentes códigos de status, corpos de resposta, headers e latência simulada.
  • Verificação de lógica de wrapper de API: Exercite um cliente de API contra endpoints mock que você controla, ajustando payloads de resposta e headers enquanto observa cada request recebido.
  • Reprodução de comportamento de redirecionamento: Configure endpoints para retornar redirecionamentos (com o header Location apropriado) e teste como sua aplicação segue ou reage a 301/302/307/308.
  • Servir conteúdo estático-like durante o desenvolvimento: Use respostas de arquivo para servir imagens, PDFs ou outros arquivos diretamente, ou sirva páginas HTML completas definindo o tipo de corpo como HTML.
  • Captura e reutilização de interações reais de request/response: Use snapshots de requests e exporte equivalentes gerados em cURL ou fetch/Ruby para reproduzir problemas ou compartilhar exemplos.

FAQ

O Decoy exige Docker, túneis na nuvem ou arquivos de configuração?
Não. A descrição do produto afirma que ele roda sem Docker, túneis na nuvem ou arquivos de config.

Quais plataformas e versões são suportadas?
Decoy requer macOS 14 Sonoma ou posterior.

Como as mudanças nas respostas mock são aplicadas?
Edições (como atualizar JSON, headers ou códigos de status) entram em vigor no próximo request recebido.

O Decoy lida com requests de navegador e CORS?
Sim. Requests baseados em navegador são suportados, e headers CORS são adicionados automaticamente.

Onde os dados de request são armazenados?
Requests são gravados no SQLite imediatamente, e a descrição do produto nota que nada é perdido se o app fechar inesperadamente.

Alternativas

  • Servidores mock HTTP locais (ferramentas genéricas): Ferramentas dessa categoria também fornecem endpoints locais e respostas controláveis, geralmente usando arquivos de configuração ou contêineres; o foco do Decoy é uma interface nativa do macOS sem Docker.
  • Plataformas dedicadas de mocking de API (serviços hospedados): Essas podem simular endpoints pela rede, mas geralmente exigem configuração e implantação externas em vez de executar um servidor mock local.
  • Bibliotecas de stubbing de request/response ou frameworks de teste: Algumas equipes usam stubs baseados em código dentro de suas suítes de teste; isso difere do servidor local standalone do Decoy com interface para inspecionar requests e editar respostas.
  • Ferramentas de teste de API com suporte a mocking: Alguns clientes de API interativos suportam mocking ou simulações locais; os fluxos de trabalho podem diferir, especialmente em torno de inspeção dedicada de requests, projetos e recursos de snapshot/export de respostas.
Decoy | UStack