Introdução
  • Visão geral do curso
  • Fazendo perguntas
  • Dicas antes de criar uma nova pergunta
Implementação do modelo conceitual
  • Visão geral do estudo de caso do capítulo
  • Material de apoio
  • Instalação das ferramentas
  • Nivelamento sobre JPA - PARTE 1 (AULA EXTRA)
  • Nivelamento sobre JPA - PARTE 2 (AULA EXTRA)
  • Criação do projeto Spring Boot
  • Primeiro commit - Projeto criado
  • REST testado
  • Testando a primeira classe de domínio - Categoria
  • Banco de dados H2 e criação automática da base de dados
  • Criando repository e service para Categoria
  • Criando operação de instanciação
  • Produto e associação muitos para muitos
  • Ajustes no endpoint /categorias{id}
  • Estado e cidade
  • Cliente, TipoCliente, telefones e endereços - Parte 1
  • Cliente, TipoCliente, telefones e endereços - Parte 2
  • Endpoint /clientes/{id} disponível
  • Pedido, EstadoPagamento e Pagamento - Parte 1
  • Pedido, EstadoPagamento e Pagamento - Parte 2 (um para um)
  • Pedido, EstadoPagamento e Pagamento - Parte 3
  • ItemPedido e ItemPedidoPK - Parte 1
  • ItemPedido e ItemPedidoPK - Parte 2
  • Endpoint /pedidos/{id} disponibilizado
  • Atualizacao: utilizando somente JsonIgnore
Operações de CRUD e Casos de Uso
  • Material de apoio do capítulo
  • Criando novo repositório remoto
  • Inserindo uma nova Categoria com POST
  • Atualizando Categoria com PUT, outros pequenos ajustes
  • Deletando uma Categoria com DELETE
  • Listando todas categorias com DTO
  • Paginação com parâmetros opcionais na requisição
  • Validação sintática com Bean Validation
  • Personalizando o retorno da validação
  • PUT, DELETE e GET para Cliente
  • Correções: update em CategoriaService e construtor de Pagamento
  • Inserindo um novo Cliente com POST
  • Ajustando e testando a deleção de Cliente
  • Validação customizada: CPF ou CNPJ na inserção de Cliente
  • Validação customizada: email não repetido na inserção de Cliente
  • Validação customizada: email não repetido na atualização de Cliente
  • Apresentando o caso de uso
  • Nivelamento sobre SQL e JPQL
  • Busca de pedidos por nome e categorias - PARTE 1
  • Busca de pedidos por nome e categorias - PARTE 2
  • Subtotal e total do Pedido
  • Inserindo Pedido
Banco de dados MySQL e Implantação no Heroku
  • Material de apoio do capítulo
  • Instalando o MySQL
  • Criando o profile de teste
  • Criando o profile de desenvolvimento
  • Instalando e preparando o Heroku
  • Dump da base de dados para o Heroku
  • Configuração e envio do projeto para produção
Serviço de email
  • Material de apoio do capítulo
  • Implementando toString de Pedido
  • MockEmailService com Logger. Padroes Strategy e Template Method
  • Implementando SmtpEmailService com servidor do Google
  • Atualização: outro link para liberar acesso ao Gmail
  • Email HTML
Autenticação e autorização com tokens JWT
  • Material de apoio do capítulo
  • Configuração inicial do Spring Security
  • Adicionando senha a Cliente
  • Salvando perfis de usuário na base de dados
  • Implementando autenticacao e geracao do token JWT (PARTE 1)
  • Implementando autenticacao e geracao do token JWT - PARTE 2
  • Implementando autorização
  • Autorizando endpoints para perfis específicos
  • Restrição de conteúdo: cliente só recupera ele mesmo
  • Restrição de conteúdo: cliente só recupera seus pedidos
  • Refresh token
  • Esqueci a senha
Armazenamento de imagens usando Amazon S3
  • Visão geral
  • Material de apoio do capítulo
  • Criação de uma conta na AWS
  • Criando um bucket no S3
  • Setup do IAM - Identity Access Management
  • Salvando primeiro arquivo no S3
  • Tornando o bucket com acesso público para leitura
  • Enviando imagem via endpoint
  • Tratando exceções adequadamente
  • Salvando URL da imagem em Cliente
  • Usando padrão de nomes para imagens
  • Bônus: ajustando tamanho da imagem
Ajustes finais no backend e bucket
  • Visão geral
  • Material de apoio do capítulo
  • Expondo o header Authorization (problema de Cors)
  • Configuração de Cors no bucket
  • Imagens para categorias, produtos e clientes