Fake API

Mock REST rápido para protótipos & testes

CRUD, persistência em JSON, busca, filtros, paginação e CORS. Ideal para simular back-end enquanto o serviço real não existe.

  • ✔️ CRUD dinâmico por recurso
  • ✔️ Validação robusta
  • ✔️ Paginação & busca textual
  • ✔️ CORS configurável
  • ✔️ Logging & erros padronizados
  • ✔️ Health checks completos

git clone https://github.com/samuelikz/fakeapi.git

npm install

cp env.example .env

npm start

Get Started

Clonar (HTTPS)

git clone https://github.com/samuelikz/fakeapi.git
cd fakeapi

Instalar dependências

npm install
cp env.example .env   # ajuste as variáveis conforme necessário

Rodar a API

npm run dev    # http://localhost:8000

# ou, em produção:
npm run build
npm start

Testes rápidos (HTTP)

  • GET /health — saúde básica
  • GET /health/detailed — saúde detalhada
  • GET /posts — lista recurso padrão
  • POST /posts — cria item

URL base padrão: http://localhost:8000 (ajuste PORT no .env se quiser outra porta).

Exemplos de uso

Health check — GET /health

curl -s http://localhost:8000/health | jq

Listar — GET /posts

curl -s http://localhost:8000/posts | jq

Obter um item — GET /posts/1

curl -s http://localhost:8000/posts/1 | jq

Criar — POST /posts

curl -s -X POST http://localhost:8000/posts \
  -H 'Content-Type: application/json' \
  -d '{"title":"Bem-vindo à Fake API","content":"Esta é uma API RESTful completa com arquitetura limpa e separação de responsabilidades.","author":"Samuel","tags":["api","rest","nodejs"]}' \
  | jq

Arquitetura (resumo)

Ver árvore de pastas
src/
├─ config/            # app & database config
├─ controllers/       # health, resource, system
├─ middleware/        # cors, logger, validation
├─ routes/            # health, resource, system
├─ services/          # database service
├─ utils/             # file utils
└─ server.js          # bootstrap da aplicação
  • • Separação clara de responsabilidades
  • • Validação e tratamento de erros padronizados
  • • Recursos dinâmicos via /:resource
  • • Health: /health, /health/detailed, /health/ready, /health/live