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

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay