DEV Community

Erivelton da Silva
Erivelton da Silva

Posted on • Edited on

Minha Primeira API Em Nodejs

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:

estrutura de pasta do projeto

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Deploy: Utilizei a vercel para o processo de deploy da API, garantindo uma implantação rápida e eficiente.



Acesse: https://github.com/eriveltondasilva/todo-app.server

Top comments (0)