Introdução, Visão geral do curso - Overview
  • Apresentação, introdução, Conteúdo do curso
  • Tecnologias utilizadas
  • Conhecendo as ferramentas de trabalho
Primeiros passos
  • Criação do projeto, integração com o Github
  • Entendendo o diagrama de classes, criação das classes (entidades)
  • Continuação da aula anterior, adição do atributo role na classe User
JPA - Mapeamento objeto relacional
  • Visão teórica do JPA (Java Persistence API)
  • Mapeamento das classes (entidades)
  • Visão teórica da Serialização e Desserialização, Implementação da serialização
Refactoração do código, Entendendo as camadas da aplicação
  • Refactoração do código, alteração do atributo user e da estrutura do Role
  • Entendendo as camadas da aplicação e o fluxo de comunicação entre elas
Construção da camada de acesso a dados - Repository
  • Criação do repositório do User
  • Criação do repositório do Request e RequestStage
  • Correção da declaração do método do RequestRepository
Criação dos testes unitários da camada de acesso a dados - Repository
  • Testes unitários do User Repository – Correção de problemas
  • Testes unitários do Request Repository – Correção de problemass
  • Testes unitários do RequestStage Repository – Correção de problemas
  • Correção da chamada do metodo findAll para findAllByRequestId
Construção da camada dos serviços - Service
  • Criação do User Service, Hash da password com Commons Codec
  • Criação do Request Service
  • Criação do RequestStage Service
Construção da camada dos recursos REST - Resource
  • Visão teórica - REST
  • Criação dos recursos REST do User
  • Criação dos recursos REST do Request
  • Criação dos recursos REST do RequestStage
Testando a camada dos recursos com o POSTMAN
  • Testes do User Resource - Correção de problemas
  • Testes do Request Resource - Correção de problemas
  • Testes do RequestStage Resource - Correção de problemas
  • Tratamento da exceção para recursos não encontrados – 404
Lazy Loading - Carregamento sobre demanda dos recursos
  • Carregamento sobre demanda das listagens – parte1
  • Carregamento sobre demanda das listagens – parte2
  • Configuração de valores padrões para os parâmetros de paginação
Blindagem da API com a validação dos dados de entrada usando o BeanValidation
  • Extra - Criação do método específico para atualizar o Role do usuário
  • Validação dos dados de entrada do Login
  • Validação dos dados de entrada do User
  • Validação dos dados de entrada do Request
  • Validação dos dados de entrada do RequestStage
  • Refactoração do código - retornando todos os erros de validação
Amazon Web Services
  • Introdução a Amazon Web Services, Criação da conta, Configuração da consola
  • AWS RDS - Criação de uma instância de base de dados
  • Preparação da aplicação para o ambiente de produção - v1
  • Configuração da implantabilidade do WAR num servidor externo
  • AWS Elastic Beanstalk - Implantação da API
Segurança - JSON Web Token (JWT) e Spring Security
  • Introdução ao JSON Web Token (JWT)
  • Introdução ao Spring Security
  • Integração do UserService - Spring Security, Criação de um codificador da senha
  • Configuração da autenticação do User com o Spring Security
  • Criação de um gerenciador do JSON Web Token (JWT)
  • Teste da autenticação da API com o POSTMAN
  • Melhorando a resposta de autenticação
  • Criação dos elementos de Autorização da API - Filtro de autorização e parser JWT
  • Teste da autorização da API com o POSTMAN
  • Controle de acesso - ACL (parte 1) com base no Role do User presente no JWT
  • Controle de acesso - ACL (parte 2) com base no tipo do User
  • Teste de controle de acesso - ACL com o POSTMAN
Upload de múltiplos ficheiros na Amazon S3 (Simple Storage Service)
  • Adição da entidade representacional de um ficheiro
  • Criação do Repository, Service da entidade representacional de um ficheiro
  • Configuração de elementos de upload - Bucket S3, IAM User e Permission, AWS SDK
  • Criação da classe de configuração da Amazon S3
  • Configuração do serviço do S3
  • Configuração da unicidade(com UUID) do nome do ficheiro no S3
  • Integração do S3Service e o RequestFileService
  • Integração do RequestResource e o RequestFileResource
  • Testes de envio dos ficheiros na Amazon S3 com o POSTMAN
  • Validação, restrição do tamanho dos ficheiros
  • Actualização da API no Beanstalk - Upload S3
Ordenação e Busca (Consulta / Search) dos dados, Escalabilidade da API
  • Configuração do Mapa genérico para a captação de parâmetros
  • Configuração do objecto de paginação unificado
  • Configuração da ordenação de dados
  • Busca / Consulta de dados com Specification
  • Busca / Consulta de dados - Ligação entre o UserService e o UserSpecification