Olá, devs
Recentemente, desenvolvi uma API utilizando Node.js para gerenciamento de tarefas (to-dos). Esta API oferece autenticação segura, garantindo a proteção dos dados dos usuários, e operações CRUD (Create, Read, Update, Delete) para manipulação das tarefas, tudo isso utilizando TypeScript e Express.js. Também foi adotado Orientação a Objetos para tornar o projeto escalável e obtendo assim todas as vantagens que traz esse paradigma.
Estrutura de pastas:
Documentação da API de To-Dos:
Autenticação
- POST /api/auth/register: Registra um novo usuário na aplicação.
- POST /api/auth/login: Autentica um usuário existente.
- POST /api/auth/logout: Descola o atual usuário, expluindo os tokens.
- POST /api/auth/token-refresh: gera um novo token de acesso para manter o usuário autenticado.
Endpoints de To-Dos
- GET /api/tasks: Lista todas as tarefas do usuário autenticado.
- POST /api/tasks: Adiciona uma nova tarefa para o usuário autenticado.
- DELETE /api/tasks: Remove tarefas existentes do usuário autenticado.
- GET /api/tasks/id: Exibe uma tarefa existente do usuário autenticado.
- PUT /api/tasks/id: Atualiza uma tarefa existente do usuário autenticado.
- DELETE /api/tasks/id: Remove uma tarefa existente do usuário autenticado.
Recursos Principais da api:
- Autenticação Segura: Implementei um sistema de autenticação utilizando JWT (JSON Web Tokens), garantindo que apenas usuários autorizados possam acessar e manipular suas tarefas, juntamente com criptografia de senha com a lib Bcrypt.
- Operações CRUD: A API oferece as operações básicas de criação, leitura, atualização e exclusão de tarefas, permitindo aos usuários gerenciar sua lista de afazeres intuitivamente.
- Endpoints Claros e Documentados: Todos os endpoints da API estão bem definidos e documentados, facilitando sua integração com diferentes clientes front-end e simplificando o processo de desenvolvimento.
- Segurança e Validação de Dados: Utilizei técnicas de validação de dados para garantir a integridade das informações e prevenir possíveis ataques de segurança, como injeção de SQL, XSS (Cross-Site Scripting) e validação através da lib express-validator.
- Persistência de Dados: Os dados das tarefas são armazenados de forma segura em um banco de dados SQLite, através do ORM prisma, garantindo alta disponibilidade e escalabilidade conforme a demanda aumente.
- Deploy: Utilizei a vercel para o processo de deploy da API, garantindo uma implantação rápida e eficiente.
Top comments (0)