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

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more