Quando você simula uma API pela linha de comando, a licença importa tanto quanto os recursos. Um servidor de mock cujo código você pode inspecionar, hospedar e executar no CI sem limites de assentos é muito diferente de um SaaS hospedado atrás de um login. Este guia reúne ferramentas de código aberto que você pode clonar, auditar e executar gratuitamente.
Todas as ferramentas desta lista têm código-fonte público, licença permissiva (MIT ou Apache-2.0), repositório aberto no GitHub e suporte a auto-hospedagem sem exigir uma conta. Se sua prioridade for inicialização rápida e instalação mínima, confira também as opções de servidores de simulação leves. Aqui, o foco é código-fonte aberto e execução própria — por isso plataformas auto-hospedáveis mais completas também entram na lista.
Para cada opção, você verá licença, comando para instalar e executar, cenário recomendado e limitações. Para comparar também ferramentas comerciais, consulte o resumo das melhores ferramentas de simulação de API e a visão geral das ferramentas de simulação de API REST.
Nota: Apidog não é código aberto; é uma plataforma comercial freemium. Ele aparece apenas no final, identificado como alternativa integrada. Todas as ferramentas numeradas abaixo são genuinamente open source.
O que torna uma ferramenta de simulação CLI de código aberto
Use estes três critérios para avaliar uma ferramenta:
Licença permissiva
O código-fonte deve estar disponível sob uma licença como MIT ou Apache-2.0. Assim, você pode ler, fazer fork e incluir a ferramenta no seu fluxo de trabalho sem taxa de licença ou contagem de assentos.Auto-hospedagem
Você precisa conseguir executá-la localmente, em um contêiner ou na sua própria infraestrutura, sem plano de controle hospedado, comunicação externa obrigatória ou criação de conta. Isso é essencial para runners de CI isolados.Manutenção pública
Procure um repositório aberto no GitHub com commits, issues e releases. Estrelas ajudam como sinal de popularidade, mas releases recentes e manutenção ativa são indicadores mais úteis.
Velocidade bruta e tamanho da instalação não são os critérios principais aqui. Para esse recorte, veja o guia de servidores de simulação leves.
Prism (Stoplight)
O Prism transforma um arquivo OpenAPI ou uma coleção Postman em um servidor de mock. Ele usa os exemplos definidos na especificação para responder às requisições, valida entradas contra o schema e também pode atuar como proxy de validação na frente de uma API real.
- Licença: Apache-2.0
- Repositório: stoplightio/prism
npm install -g @stoplight/prism-cli
prism mock https://raw.githubusercontent.com/stoplightio/prism/master/examples/petstore.oas2.yaml
O comando inicia o mock em http://127.0.0.1:4010.
Teste o endpoint:
curl http://127.0.0.1:4010/pets
O GET /pets retorna os exemplos definidos no documento OpenAPI. Se você enviar um payload inválido, o Prism informa qual parte do schema foi violada.
Melhor para: mocks orientados a contrato, quando OpenAPI é a fonte da verdade. O modo de proxy de validação é útil para detectar divergências entre a especificação e a API real.
Limitações: a qualidade das respostas depende dos exemplos e schemas da sua especificação. Não há comportamento com estado embutido, como criar um recurso e recuperá-lo depois. Requer Node.js.
Mockoon CLI
O Mockoon é conhecido pelo aplicativo desktop, mas o CLI executa o mesmo motor sem interface gráfica, o que o torna útil para CI e auto-hospedagem. Você pode fornecer um ambiente criado no aplicativo, editar o arquivo manualmente ou usar uma especificação OpenAPI.
- Licença: MIT
- Repositório: mockoon/mockoon
npm install -g @mockoon/cli
mockoon-cli start --data ./environment.json --port 3000
Também é possível iniciar com um arquivo OpenAPI:
mockoon-cli start --data ./openapi.yaml --port 3000
Durante o desenvolvimento, habilite recarga e logs detalhados:
mockoon-cli start \
--data ./environment.json \
--port 3000 \
--watch \
--log-transaction
Melhor para: respostas ricas baseadas em regras, sem escrever código. O Mockoon suporta templating, regras condicionais e proxy. Por exemplo, um endpoint pode retornar corpos diferentes conforme headers, parâmetros ou corpo da requisição.
Limitações: o fluxo de autoria mais confortável é o aplicativo desktop. Editar manualmente o JSON do ambiente pode ser trabalhoso, e a sintaxe de templating exige aprendizado.
json-server
O json-server é uma forma rápida de disponibilizar uma API REST simulada com estado. Você fornece um arquivo JSON e ele gera rotas CRUD com persistência no próprio arquivo.
- Licença: MIT
- Repositório: typicode/json-server
Crie um db.json:
{
"posts": [
{
"id": 1,
"title": "Primeiro post",
"published": true
}
]
}
Inicie o servidor:
npx json-server db.json
Com esse arquivo, você obtém automaticamente:
curl http://localhost:3000/posts
curl http://localhost:3000/posts/1
curl -X POST http://localhost:3000/posts \
-H "Content-Type: application/json" \
-d '{"title":"Novo post","published":false}'
O novo registro é gravado em db.json, portanto estará disponível nas próximas leituras.
Melhor para: desenvolvimento frontend antes da existência do backend. Ele oferece estado nativamente e permite simular fluxos CRUD completos com configuração mínima.
Limitações: é opinativo sobre convenções REST e não reproduz uma API arbitrária com facilidade. Não importa OpenAPI: o arquivo JSON funciona como contrato. Não foi feito para teste de carga ou simulação de comportamento de produção.
WireMock
O WireMock é uma ferramenta robusta de mock HTTP para cenários de teste complexos. Ele pode executar como processo independente, usar arquivos JSON de stub ou receber configurações pela API administrativa. Também oferece correspondência de requisições, templating de respostas, cenários com estado, injeção de falhas, gravação e reprodução.
- Licença: Apache-2.0
- Repositório: wiremock/wiremock
Inicie com Docker:
docker run -it --rm -p 8080:8080 wiremock/wiremock:latest
Registre um stub pela API administrativa:
curl -X POST http://localhost:8080/__admin/mappings \
-H "Content-Type: application/json" \
-d '{
"request": {
"method": "GET",
"url": "/hello"
},
"response": {
"status": 200,
"body": "world"
}
}'
Teste a resposta:
curl http://localhost:8080/hello
# world
Para versionar os mocks no repositório, você também pode salvar os stubs em um diretório mappings/ e montá-lo no contêiner.
Melhor para: cenários de teste ricos. Use-o para simular APIs instáveis com atrasos e falhas, criar fluxos com estado ou gravar chamadas a uma API real para reproduzi-las depois.
Limitações: exige JVM ou Docker. A superfície de configuração é grande para mocks simples, e não há um comando único para ler uma especificação e iniciar como no Prism.
MockServer
O MockServer combina mock e proxy HTTP(S) em uma única porta, com foco em testes de integração. Ele pode simular APIs, fazer proxy e gravar tráfego ao vivo, além de injetar falhas para testar o comportamento do cliente. Versões recentes também incluem suporte a HTTP/2, gRPC e WebSocket.
- Licença: Apache-2.0
- Repositório: mock-server/mockserver
Inicie o servidor:
docker run -d --rm -p 1080:1080 mockserver/mockserver
Registre uma expectativa:
curl -X PUT "http://localhost:1080/mockserver/expectation" \
-H "Content-Type: application/json" \
-d '{
"httpRequest": {
"path": "/order"
},
"httpResponse": {
"body": "{\"status\":\"ok\"}"
}
}'
Teste o endpoint:
curl http://localhost:1080/order
# {"status":"ok"}
Os clientes do MockServer para Java, JavaScript, Ruby e outras linguagens permitem declarar as mesmas expectativas diretamente no código de teste.
Melhor para: combinar mock, proxy e verificação de chamadas. Ele é especialmente útil quando você precisa validar se uma requisição foi feita um número específico de vezes ou injetar falhas em integrações.
Limitações: assim como o WireMock, é baseado em JVM e usa expectativas JSON verbosas. Há sobreposição entre as duas ferramentas; escolha considerando a biblioteca cliente que melhor se integra à sua stack. Se precisar comparar opções, veja estas alternativas ao MockServer.
Microcks
O Microcks é uma plataforma para centralizar mocks e testes de contrato em múltiplas APIs e protocolos. É um projeto incubado da Cloud Native Computing Foundation. Ele importa OpenAPI, AsyncAPI, gRPC, GraphQL, coleções Postman e projetos SoapUI, transforma esses contratos em mocks e reutiliza os mesmos artefatos para executar testes de conformidade contra implementações reais.
- Licença: Apache-2.0
- Repositório: microcks/microcks
Para executar a imagem all-in-one:
docker run -d --name microcks -p 8585:8080 quay.io/microcks/microcks-uber:latest
Abra http://localhost:8585, importe uma especificação e obtenha endpoints de mock.
O microcks-cli permite controlar uma instância em execução a partir do CI:
microcks-cli import "petstore.yaml:true" \
--microcksURL=http://localhost:8585/api \
--keycloakClientId=... \
--keycloakClientSecret=...
Melhor para: equipes que precisam de um catálogo governado de mocks para várias APIs e protocolos, com testes de contrato integrados. O suporte a protocolos assíncronos e orientados a eventos, como Kafka e MQTT, é um diferencial.
Limitações: é uma plataforma completa, não um binário único. O microcks-cli importa artefatos e dispara testes contra uma instância do Microcks; ele não serve mocks sozinho. Para um mock local isolado, Prism ou json-server são mais leves.
Uma observação honesta: Apidog
O Apidog não é código aberto, portanto não entra na lista principal. Porém, se você precisa combinar mocks orientados a especificação, comportamento com estado, testes e documentação em um único fluxo, ele é uma alternativa a considerar.
O Apidog é uma plataforma freemium cujo nível gratuito inclui simulação. O comando apidog mock no apidog-cli permite gerenciar expectativas de mock pelo terminal junto com design, testes e documentação no mesmo projeto. O mock inteligente gera valores de campo realistas a partir do schema, reduzindo a necessidade de escrever corpos de exemplo manualmente.
A contrapartida é direta: você ganha um fluxo integrado e um nível gratuito, mas não código aberto nem auto-hospedagem isolada. Se esses requisitos forem obrigatórios, escolha uma das seis ferramentas acima.
Como escolher
| Ferramenta | Melhor para | Instalação | Licença | Notas |
|---|---|---|---|---|
| Prism | Mocks orientados a especificação e proxy de validação | npm i -g @stoplight/prism-cli |
Apache-2.0 | Entrada OpenAPI/Postman; sem estado |
| Mockoon CLI | Respostas baseadas em regras sem código | npm i -g @mockoon/cli |
MIT | Crie no app e execute sem GUI |
| json-server | REST com estado para frontend | npx json-server db.json |
MIT | CRUD completo com persistência |
| WireMock | Cenários complexos e injeção de falhas | docker run wiremock/wiremock |
Apache-2.0 | JVM; gravação, reprodução e estado |
| MockServer | Mock, proxy e verificação | docker run mockserver/mockserver |
Apache-2.0 | JVM; HTTP/2, gRPC e WebSocket |
| Microcks | Catálogo multiprotocolo governado | docker run microcks-uber |
Apache-2.0 | Plataforma CNCF; CLI é cliente |
| Apidog (não OSS) | Fluxo integrado de design a mock | npm i -g apidog-cli |
Freemium | Nível gratuito e apidog mock
|
Escolha pelo formato do problema, não pela popularidade:
- Use Prism quando você já tem uma especificação OpenAPI e quer aplicá-la como contrato.
- Use json-server quando precisa de CRUD com estado para desbloquear o frontend.
- Use Mockoon CLI para respostas condicionais e ricas sem escrever um servidor.
- Use WireMock ou MockServer para testes de integração com falhas, atrasos, proxy, gravação e cenários complexos.
- Use Microcks quando a equipe precisa compartilhar mocks e contratos entre APIs, protocolos e pipelines.
O guia de casos de uso de simulação de API ajuda a mapear ferramentas para cenários específicos.
Conclusão
Ferramentas de simulação CLI de código aberto permitem executar servidores de mock que você pode ler, auditar, auto-hospedar e usar gratuitamente no CI.
- Prism e json-server resolvem os casos mais comuns com poucos comandos.
- WireMock e MockServer cobrem testes de integração mais exigentes.
- Microcks escala para catálogos de APIs e protocolos múltiplos.
As seis opções são auto-hospedáveis, têm código público no GitHub e usam licenças MIT ou Apache-2.0.
Se você preferir administrar mocks junto com design, testes e documentação sem combinar ferramentas separadas, baixe o Apidog e experimente apidog mock no nível gratuito. Ele não é código aberto, mas reúne o fluxo de linha de comando para CI em um só lugar.
Top comments (0)