Um micro-framework leve e flexível para construir APIs RESTful com Node.js, utilizando o módulo http nativo.
- Roteamento Simples: Defina rotas para diferentes métodos HTTP (GET, POST, PATCH, PUT, DELETE).
- Extração de Parâmetros: Suporte para parâmetros de URL (ex:
/users/:id). - Análise de Corpo de Requisição: Lida com a leitura do corpo de requisições POST/PATCH/PUT.
- Códigos de Status e Métodos HTTP: Utiliza enums para maior clareza e segurança de tipo.
- Estrutura Modular: Componentes separados para roteamento, análise de requisições e servidor.
Este projeto utiliza as seguintes tecnologias e padrões:
- Node.js: Plataforma de execução JavaScript no lado do servidor.
- Jest: Framework de testes JavaScript.
- ESLint: Ferramenta de linting para identificar e reportar padrões problemáticos em código JavaScript.
- Prettier: Ferramenta de formatação de código para garantir um estilo consistente.
- Micro-Framework: Uma abordagem minimalista para construção de frameworks, focando apenas nas funcionalidades essenciais.
- API RESTful: Arquitetura para APIs que utiliza princípios REST (Representational State Transfer), como recursos, métodos HTTP e comunicação stateless.
- Roteamento (Routing): Padrão para direcionar requisições HTTP para o código apropriado com base na URL e no método HTTP.
- Análise de Requisições (Request Parsing): Processamento do corpo e dos parâmetros das requisições HTTP.
- Enums (Enumerations): Utilização de objetos congelados para representar conjuntos fixos de valores (como status HTTP e métodos HTTP), melhorando a legibilidade e a segurança de tipo.
- Modularização: Organização do código em módulos separados (
server,url-matcher,request-parser,http-status,http-methods) para promover a reutilização e a manutenibilidade.
Para configurar o projeto localmente, siga os passos abaixo:
- Instale as dependências:
npm install
Para iniciar o servidor de desenvolvimento:
node src/index.jsO servidor estará rodando em http://localhost:3000 (ou na porta configurada em src/index.js).
- GET /test-get
- POST /test-post
- PATCH /test-patch/:id
O projeto utiliza Jest para testes unitários.
Para rodar todos os testes:
npm testPara rodar os testes e gerar um relatório de cobertura:
npm test -- --coverageO projeto utiliza ESLint para linting e Prettier para formatação de código.
Para verificar o código com o linter:
npm run lintPara formatar o código automaticamente:
npm run format