Você está construindo um frontend, mas o backend ainda não está pronto. Você precisa de uma API REST que retorne JSON realista agora, com GET, POST, PUT e DELETE funcionando, para que você possa continuar codificando em vez de esperar.
É para isso que serve o json-server. Aponte-o para um único arquivo JSON e ele serve uma API REST completa em segundos, sem necessidade de código de backend. Seu irmão, JSONPlaceholder, vai um passo além: uma API falsa hospedada que você pode chamar sem instalar nada. Este guia mostra como usar os dois, onde eles atingem seu limite e quando migrar para um mock consciente de esquema no Apidog.
Para uma visão mais ampla sobre como simular endpoints, consulte o que é uma API mock. Aqui, focamos nas duas ferramentas que os desenvolvedores procuram primeiro.
O que é json-server?
json-server é uma ferramenta npm de código aberto que transforma um arquivo JSON simples em uma API REST real. Você escreve um arquivo db.json descrevendo seus recursos, executa um comando e obtém rotas CRUD padrão apoiadas por esse arquivo. Solicitações de escrita realmente modificam o arquivo, então os dados persistem entre as solicitações durante sua sessão.
É a maneira mais rápida de obter uma API funcional para prototipagem, desenvolvimento frontend, demonstrações e testes, sem configurar um banco de dados ou escrever código de servidor. O projeto está no GitHub e é amplamente utilizado exatamente para essa finalidade.
Instalar e executar json-server
Instale-o via npm:
npm install json-server
Crie um arquivo db.json em seu projeto. Chaves de array de nível superior se tornam rotas de coleção; objetos de nível superior se tornam rotas de recurso único:
{
"posts": [
{ "id": "1", "title": "First post", "views": 100 },
{ "id": "2", "title": "Second post", "views": 250 }
],
"comments": [
{ "id": "1", "text": "Nice work", "postId": "1" }
],
"profile": {
"name": "apidog"
}
}
Inicie o servidor:
npx json-server db.json
Ele roda em http://localhost:3000 por padrão. É isso; agora você tem uma API ativa.
Nota sobre versões: o json-server v1 descartou a antiga flag--watch, entãonpx json-server db.jsoné o comando atual. Se você estiver na linha 0.x mais antiga, ainda verájson-server --watch db.jsonem tutoriais.
As rotas que você obtém gratuitamente
Do db.json acima, o json-server gera uma superfície REST completa.
Para o array posts:
GET /posts
GET /posts/:id
POST /posts
PUT /posts/:id
PATCH /posts/:id
DELETE /posts/:id
Para o objeto profile:
GET /profile
PUT /profile
PATCH /profile
Consultas também estão incorporadas. A sintaxe v1 usa dois pontos para condições:
GET /posts?views:gt=100 # views maiores que 100
GET /posts?views:lte=50 # views menores ou iguais a 50
GET /posts?_sort=-views # ordenar por views, decrescente
GET /posts?_page=1&_per_page=25 # paginação
GET /posts?_embed=comments # incluir comentários relacionados
Os operadores disponíveis incluem lt, lte, gt, gte, eq, ne, in, contains, startsWith e endsWith. Para um arquivo simples e um comando, isso é muita API.
JSONPlaceholder: uma API falsa com zero configuração
Às vezes você nem quer instalar uma ferramenta. JSONPlaceholder, do mesmo autor, é uma API REST falsa e gratuita hospedada em jsonplaceholder.typicode.com. Você a chama diretamente do seu código:
curl https://jsonplaceholder.typicode.com/posts/1
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident",
"body": "quia et suscipit..."
}
Ele vem com seis recursos prontos:
/posts(100 itens)/comments(500)/albums(100)/photos(5000)/todos(200)/users(10)
Ele também aceita POST, PUT, PATCH e DELETE, mas aqui está o porém: as escritas são falsas. A API retorna uma resposta realista como se a mudança tivesse acontecido, mas nada é salvo. Atualize e sua "nova" postagem desaparecerá. Isso é bom para conectar o código da UI a dados previsíveis; não é um backend real.
json-server vs JSONPlaceholder
| json-server | JSONPlaceholder | |
|---|---|---|
| Configuração | Instalar pacote npm, escrever db.json |
Nenhuma, basta chamar a URL |
| Executa | Localmente, sua máquina | Hospedado, público |
| Dados personalizados | Sim, seus próprios recursos | Não, recursos fixos |
| Escritas persistem | Sim, para db.json |
Não, falsificado |
| Melhor para | Prototipagem com seus próprios formatos | Demos rápidas e aprendizado |
Use JSONPlaceholder quando você quiser dados agora e não se importar com o que eles são. Use json-server quando você precisar de seus próprios recursos e escritas que persistam.
Onde essas ferramentas atingem seu limite
json-server e JSONPlaceholder são excelentes em uma coisa: servir JSON rapidamente. Eles começam a ser um problema quando um projeto cresce além de um protótipo solo.
- Nenhuma validação real. Eles não impõem um esquema. Publique uma string onde um número deveria estar e ela será felizmente armazenada. Sua API real a rejeitaria.
- Nenhum dado dinâmico ou inteligente. As respostas são o que estiver no arquivo. Não há uma maneira integrada de retornar um e-mail aleatório fresco ou uma data futura por solicitação.
- Local e de usuário único. O json-server roda no seu laptop. Um colega de equipe ou um trabalho de CI não pode acessar
localhost:3000. JSONPlaceholder é compartilhado, mas você não pode personalizá-lo. - Desvia da sua especificação. Os dados falsos vivem em um arquivo separado, desconectado do seu contrato OpenAPI, então os dois se separam à medida que a API evolui.
- Escritas falsas (JSONPlaceholder). Qualquer coisa com estado, como um carrinho ou um fluxo de várias etapas, não pode ser testada contra ele.
Se você superou um arquivo simples, nossos resumos de ferramentas para mock de endpoints REST e servidores de mock de API gratuitos e baratos cobrem o próximo nível, e ferramentas online de mock de API comparadas colocam as opções hospedadas lado a lado.
Quando migrar para um servidor de mock real
Um mock consciente de esquema corrige todas as limitações acima. É aqui que o Apidog assume do json-server.

- Orientado por esquema, não por arquivo. Defina um endpoint (ou importe sua especificação OpenAPI) e o Apidog o simula automaticamente. O mock e o contrato permanecem sincronizados porque são a mesma definição.
- Dados inteligentes e dinâmicos. O Apidog lê nomes de campos e tipos e retorna valores realistas: um e-mail válido para um campo
email, uma data paracreatedAt, um número paraprice. Você pode anexar regras estilo Faker por campo para controle total. Nosso guia sobre Faker.js no Apidog e o passo a passo mais amplo do gerador de dados de teste aprofundam a produção de valores realistas. - Uma URL de nuvem compartilhável. O Apidog fornece ao mock uma URL hospedada que toda a sua equipe e seu pipeline de CI podem chamar, não apenas
localhost. - Nenhum Node necessário. Não há pacote para instalar por projeto e nenhum
db.jsonpara ficar monitorando.
Simule a mesma API no Apidog
- Baixe o Apidog e crie ou abra um projeto.
- Adicione um endpoint, por exemplo
GET /posts, e defina seu esquema de resposta (ou importe um arquivo OpenAPI existente). - O Apidog gera uma URL de mock e começa a retornar dados inteligentes e realistas para cada campo imediatamente.
- Precisa de valores específicos? Adicione uma regra de mock por campo para fixar a saída.
- Compartilhe a URL de mock com sua equipe ou insira-a em seu conjunto de testes e CI.

Você mantém a velocidade de "API em minutos" do json-server e ganha validação, dados dinâmicos e uma URL que todos podem acessar.
FAQ
O json-server é gratuito? Sim, é de código aberto e gratuito para usar. JSONPlaceholder também é gratuito.
O json-server persiste dados? Sim. POST, PUT, PATCH e DELETE escrevem de volta para o seu db.json, então as mudanças sobrevivem entre as requisições enquanto o servidor está rodando. JSONPlaceholder falsifica as escritas e não salva nada.
Posso usar json-server em produção? Não. Ele foi construído para prototipagem e testes. Não possui validação real, autenticação ou história de escalabilidade.
Qual a diferença entre json-server e um servidor de mock como Apidog? json-server serve um arquivo estático como uma API. Apidog simula a partir do esquema da sua API, retorna dados dinâmicos realistas e expõe uma URL de nuvem compartilhada. Veja o que é uma API mock e o resumo das ferramentas de mock REST para contexto.
Como obter dados falsos realistas em vez de linhas estáticas? Use um gerador. Um gerador de dados de teste cria registros variados e realistas, e o mock do Apidog faz isso automaticamente a partir do seu esquema.
A versão resumida
json-server transforma um arquivo JSON em uma API REST funcional com um comando, e JSONPlaceholder oferece uma API falsa hospedada sem nenhuma configuração. Ambos são perfeitos para se desbloquear rapidamente. Uma vez que você precisa de validação de esquema, dados dinâmicos, estado persistente e uma URL que sua equipe possa realmente acessar, um arquivo simples não é suficiente. Essa é a linha onde o servidor de mock do Apidog assume o controle. Baixe o Apidog, importe sua especificação, e seu mock corresponderá ao contrato real desde a primeira solicitação.
