Skip to content

rniguel/fallback-api-cep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fallback API CEP

Este projeto demonstra uma implementação de busca de CEP com lógica de fallback entre múltiplas APIs (AwesomeCEP e ViaCEP), garantindo maior disponibilidade do serviço.

Estrutura do Projeto

  • frontend/: Aplicação React + Vite + TailwindCSS + shadcn/ui.
  • backend/: API Node.js + Express + TypeScript com lógica de fallback e segurança.

Como Executar

Docker (Recomendado)

O projeto está totalmente containerizado com Docker Compose, oferecendo ambientes de desenvolvimento e produção isolados.

Modo Desenvolvimento (Hot Reload):

docker compose --profile dev up --build
  • Frontend: http://localhost:5173
  • Backend: http://localhost:3333

Modo Produção:

docker compose --profile prod up --build
  • Frontend: http://localhost:8080
  • Backend: http://localhost:3333

Execução Local (Sem Docker)

  • Node.js (v18 ou superior)
  • npm ou yarn

Backend

  1. Entre na pasta do backend:
    cd backend
  2. Instale as dependências:
    npm install
  3. Configure as variáveis de ambiente:
    • Copie o arquivo .env.example para .env
    • Adicione seu token da AwesomeAPI se necessário (opcional para testes locais).
  4. Inicie o servidor em modo de desenvolvimento:
    npm run dev
    O backend estará disponível em http://localhost:3333.

Frontend

  1. Entre na pasta do frontend:
    cd frontend
  2. Instale as dependências:
    npm install
  3. Inicie a aplicação:
    npm run dev
    O frontend estará disponível em http://localhost:5173.

Funcionalidades de Segurança (Backend)

  • Helmet: Adição de headers de segurança para proteção contra ataques comuns.
  • CORS: Configurado para aceitar requisições apenas da URL do frontend.
  • Rate Limit: Limite de 30 requisições por minuto por IP para evitar abusos na rota de CEP.
  • Validação: Middleware para validar o formato do CEP antes de processar a busca.

Créditos

Criado por Miguel.

About

Este projeto demonstra uma implementação de busca de CEP com lógica de fallback entre múltiplas APIs (AwesomeCEP e ViaCEP), garantindo maior disponibilidade do serviço.

Topics

Resources

Stars

Watchers

Forks

Contributors