Projeto desenvolvido para estudos de API RESTful com Express e Node.js
Essa aplicação em JavaScript segue a proposta de "Um planner que irá ajudar o cliente a organizar sua semanas, tarefas e quando elas acontecem". Nela foram implementadas as funções de:
Usuários - listar todos os usuários, sign up e sign in;
Eventos - criar novo evento, listar todos os eventos, listar eventos pelo id ou dia da semana e deletar eventos pelo id ou dia da semana.
No momento não é usado banco de dados. Os usuários e eventos são registrados em arquivos JSON, users.json e events.json, respectivamente.
📄 A documentação detalhada dos endpoints (requisições, parâmetros, exemplos de request/response e erros) está disponível no arquivo
endpoints.md
- Tecnologias usadas
- Como rodar localmente
- Validações
- Como testar usando Postman com servidor local
- Como testar usando Postman com deploy
- Créditos
- Node.js 8.19.3
- Express 4.18.2
- Nodemon 2.0.20
- Eslint 8.34.0
- Postman
- Clonar esse repositório ou um fork dele no seu ambiente de desenvolvimento. (git clone + url do projeto)
- Entrar no diretório do projeto
- Instalar as dependências pelo terminal com o comando:
npm i - Entrar em
package.jsone alterar em "scripts" de"start": "node ./src/server.js"para"start": "nodemon ./src/server.js" - Entrar em
./src/server.jse alterar aportdeprocess.env.PORTpara a porta que você deseja rodar localmente (ex: 3000) - Rodar
npm startno terminal (ounode ./src/server.jsse não quiser usar o nodemon)
📌 Atenção: Os arquivos users.json e events.json, quando vazios, devem conter [] para evitar erros ao registrar objetos.
- Verifica se todos os campos obrigatórios foram preenchidos
- Impede criação de usuários com e-mail já existente
- Confirma se
passwordeconfirmPasswordsão iguais
- Verifica presença de campos obrigatórios
- Valida se o campo
dateTimeestá em formato válido (YYYY/MM/DD)
- Inicie o servidor local com
npm start - No Postman, selecione o tipo de requisição (GET, POST, DELETE)
- Use
http://127.0.0.1:3000/api/v1/...como base - Para POST, vá em "Body" > "raw" > selecione "JSON" e insira os dados de entrada
- Clique em "Send" e veja a resposta
Caso esteja usando deploy (ex: Railway), substitua o localhost pela URL gerada.
Exemplo:
POST https://challenge1-production-9cbc.up.railway.app/api/v1/users
Lembrando que para realizar o deploy, em ./scr/server.js a porta deve ser process.env.PORT e em package.json o "script" deve ser "start": "node ./src/server.js"
Este projeto inclui um script para testes automatizados das rotas de eventos da API, garantindo que funcionalidades essenciais continuem funcionando corretamente após alterações no código.
- Certifique-se de que a API está rodando localmente (
npm startounode src/server.js). - No terminal, execute:
node testEvents.js
O script testEvents.js realiza os seguintes testes automáticos:
- Criação de evento com dados válidos (
POST /api/v1/events) - Tentativa de criação de evento com data inválida (esperando erro)
- Consulta de eventos (
GET /api/v1/events) - Consulta de evento específico por ID (
GET /api/v1/events/:id) - Exclusão de evento por ID (
DELETE /api/v1/events/:id)
Ao final, o resultado de cada teste é exibido diretamente no terminal, indicando sucesso ou detalhes do erro retornado pela API.
Esses testes garantem que, a cada alteração ou correção realizada, as principais rotas de eventos continuam funcionando conforme o esperado, reduzindo o risco de bugs passarem despercebidos para produção.
Para o desenvolvimento dessa API, foram usados os conhecimentos adquiridos no curso Node.js, Express, MongoDB & More: The Complete Bootcamp 2023 disponibilizado pela Compass Uol no programa de bolsas Back-end Journey (Node.js) na Udemy.
Curso na Udemy
