Destino Dev

Cursos

NestJS Básico: Construindo APIs com Node.js

Código do curso: github.com/johnpires/nestjs-junior-projeto-final

NestJS é um framework Node.js progressivo para a construção de aplicações server-side eficientes, confiáveis e escaláveis. Construído sobre o TypeScript e combinando elementos de POO (Programação Orientada a Objetos), FP (Programação Funcional) e FRP (Programação Reativa Funcional), o NestJS se tornou uma das escolhas mais populares entre desenvolvedores backend modernos.

Neste curso, você aprenderá os fundamentos do NestJS do zero, partindo da instalação e configuração do ambiente até a criação de uma API REST completa. Abordaremos os conceitos centrais do framework: Controllers, Providers, Services, Módulos, DTOs, Pipes de validação e tratamento de erros. Toda a progressão foi planejada para quem já tem conhecimento básico de JavaScript e quer dar o próximo passo na construção de backends profissionais.

Ao concluir este curso, você terá construído uma API funcional de gerenciamento de tarefas, aplicando todos os conceitos aprendidos em um projeto real. Você entenderá a arquitetura modular do NestJS, saberá como estruturar projetos de médio porte e estará preparado para evoluir para tópicos avançados como autenticação JWT, integração com bancos de dados e testes automatizados.

O que você vai aprender

Ao final deste curso, você será capaz de:

Pré-requisitos

Para aproveitar ao máximo este curso, é necessário ter conhecimento básico de JavaScript (variáveis, funções, objetos, arrays e Promises) e familiaridade com o terminal/linha de comando. Conhecimento introdutório de TypeScript é desejável, mas não obrigatório — o curso apresenta os conceitos de TypeScript necessários ao longo das aulas. É recomendável ter Node.js (versão 18 ou superior) instalado na sua máquina.

Conteúdo do curso

Módulo 1: Introdução ao NestJS

Conheça o NestJS, entenda sua arquitetura e configure o ambiente de desenvolvimento para começar a construir APIs profissionais.

  1. O que é NestJS e por que usá-lo? (20 min)
  2. Instalação e criação do primeiro projeto (25 min)
  3. Decorators e conceitos fundamentais do NestJS (25 min)

Módulo 2: Controllers e Rotas HTTP

Aprenda a criar controllers para expor endpoints HTTP, manipular parâmetros de rota, query strings e corpo da requisição.

  1. Criando controllers e mapeando rotas (25 min)
  2. Parâmetros de rota, query strings e corpo da requisição (25 min)
  3. Respostas HTTP, status codes e cabeçalhos de resposta (20 min)

Módulo 3: Providers e Services

Compreenda o sistema de Providers do NestJS e aprenda a criar Services para encapsular a lógica de negócio da aplicação.

  1. O que são Providers e como criar Services (25 min)
  2. Injeção de Dependência na prática (20 min)

Módulo 4: Módulos NestJS

Aprenda a organizar sua aplicação em módulos coesos e reutilizáveis, entendendo como importar e exportar funcionalidades entre módulos.

  1. Estrutura e organização de módulos (25 min)
  2. Importando e exportando entre módulos (20 min)

Módulo 5: DTOs e Validação de Dados

Aprenda a criar DTOs (Data Transfer Objects) e a usar class-validator para garantir que os dados recebidos pela API sejam válidos.

  1. Criando DTOs com TypeScript (20 min)
  2. Validação com class-validator e ValidationPipe (30 min)

Módulo 6: Pipes e Transformação de Dados

Conheça os Pipes do NestJS e como usá-los para transformar e validar dados antes que cheguem aos handlers dos controllers.

  1. Pipes built-in e criando pipes customizados (25 min)

Módulo 7: Tratamento de Erros e Exceções

Aprenda como o NestJS trata erros e como usar exceções HTTP, filtros e respostas padronizadas de erro em sua API.

  1. Exceções HTTP e Exception Filters (30 min)

Módulo 8: Projeto Final: API de Gerenciamento de Tarefas

Aplique todos os conceitos do curso construindo uma API REST completa de gerenciamento de tarefas, do zero ao produto final funcional.

  1. Planejamento e estrutura da API de Tarefas (20 min)
  2. Implementando o CRUD de tarefas (35 min)
  3. Configuração final e testando a API completa (25 min)