Destino Dev

Cursos

API GraphQL com NestJS + Prisma + DataLoader + Subscriptions

Código do curso: github.com/johnpires/api-graphql-nestjs-prisma

Construa uma API GraphQL production-ready com NestJS, Prisma ORM, DataLoader para evitar N+1 queries, e Subscriptions em tempo real via WebSockets. Aprenda autenticação JWT, paginação com cursor, upload de arquivos e deploy no Railway.

Conteúdo do curso

Módulo 1: Módulo 1 — Introdução e Setup do Projeto

Visão geral da API GraphQL que vamos construir, setup do ambiente NestJS e configuração inicial do Prisma.

  1. 1.1 O que vamos construir: API GraphQL production-ready (8 min)
  2. 1.2 Configurando o ambiente de desenvolvimento (8 min)
  3. 1.3 Estrutura do projeto e organização de módulos (3 min)

Módulo 2: Módulo 2 — GraphQL Fundamentos com NestJS

Aprenda a criar schemas GraphQL, types, queries e mutations usando o code-first approach do NestJS.

  1. 2.1 Code-first approach: Types e ObjectTypes (8 min)
  2. 2.2 Queries e Mutations com Resolvers (3 min)
  3. 2.3 InputTypes, Args e validação com class-validator (3 min)
  4. 2.4 ResolveField: relacionamentos entre types (2 min)

Módulo 3: Módulo 3 — Prisma ORM: Schema e Migrações

Modele o banco de dados com Prisma Schema, crie migrações, relacionamentos e seeds de dados.

  1. 3.1 Modelando o schema Prisma completo (8 min)
  2. 3.2 Migrações e seeds de dados (2 min)
  3. 3.3 Queries avançadas com Prisma Client (3 min)
  4. 3.4 Relacionamentos many-to-many e soft delete (3 min)

Módulo 4: Módulo 4 — Resolvers Avançados e DataLoader

Implemente resolvers complexos e use DataLoader para resolver o problema N+1 queries de forma eficiente.

  1. 4.1 O problema N+1 e como o DataLoader resolve (2 min)
  2. 4.2 Integrando DataLoader ao contexto GraphQL (2 min)
  3. 4.3 Cache do DataLoader e estratégias de invalidação (3 min)
  4. 4.4 Erros customizados e error handling no GraphQL (3 min)

Módulo 5: Módulo 5 — Autenticação JWT no GraphQL

Proteja sua API com autenticação JWT, guards, roles e decoradores customizados no NestJS.

  1. 5.1 Implementando login e registro com JWT (3 min)
  2. 5.2 Guards e decoradores para proteger resolvers (3 min)
  3. 5.3 Refresh Token e logout seguro (3 min)
  4. 5.4 Autenticação em Subscriptions WebSocket (2 min)

Módulo 6: Módulo 6 — Subscriptions em Tempo Real

Adicione subscriptions GraphQL via WebSockets com PubSub para notificações em tempo real.

  1. 6.1 PubSub e o sistema de eventos do GraphQL (2 min)
  2. 6.2 Filtros e subscriptions por usuário (2 min)
  3. 6.3 Redis PubSub para produção multi-instância (2 min)
  4. 6.4 Teste de Subscriptions com cliente WebSocket (2 min)

Módulo 7: Módulo 7 — Paginação, Filtros e Upload

Implemente paginação cursor-based, filtros dinâmicos e upload de arquivos na sua API GraphQL.

  1. 7.1 Paginação cursor-based estilo Relay (3 min)
  2. 7.2 Filtros dinâmicos e ordenação no GraphQL (3 min)
  3. 7.3 Upload de arquivos com GraphQL Multipart (3 min)
  4. 7.4 Upload para AWS S3 em produção (2 min)

Módulo 8: Módulo 8 — Deploy e Produção no Railway

Configure variáveis de ambiente, PostgreSQL na nuvem e faça o deploy completo no Railway.

  1. 8.1 Preparando a API para produção (2 min)
  2. 8.2 Deploy no Railway com PostgreSQL e Redis (2 min)
  3. 8.3 Próximos passos e melhorias da API (2 min)