
* Vou me apresentar;
* Vou dar uma visão geral do curso.
* Vou apresentar as tecnologias utilizadas ao longo do curso para o desenvolvimento da API e para a publicação da mesma na CLOUD.
* Vou apresentar as ferramentas de trabalho para o desenvolvimento, teste e versionamento do código fonte da nossa API.
* Vamos criar o nosso projeto;
* Vamos integrar o projeto criado com o Github.
* Vamos entender o nosso diagrama de classes;
* Vamos criar as classes do nosso projeto e os relacionamento entre elas.
* Putz, esquecemos o atributo role, vamos adiciona-lo na classe User.
* Vamos entender teoricamente o JPA, e como que esta especificação pode nos ajudar a aumentar a produtividade em nosso projetos Java.
* A magia do JPA, vamos mapear as nossas classes com a base de dados.
* Vamos entender o conceito de serialização / desserialização, e o impacto que isto tem.
* Vamos refactorar o nosso código, vamos deixar ele mais lindo.
* Vamos entender as diferentes camadas que compõem a nossa aplicação, e como que elas irão se comunicar.
* Criação do repositório da classe User: vamos criar a camada de acesso a dados da classe User.
* Criação do repositório da classe Request e RequestStage: vamos criar a camada de acesso a dados da classe Request e RequestStage.
* Putz, tudo bem. isso as vezes acontece, erramos, vamos corrigir o nosso método no Repositório da classe Request.
* Vamos testar os métodos do repositório da classe User e garantir a qualidade da nossa aplicação.
* Vamos testar os métodos do repositório da classe Request e garantir a qualidade da nossa aplicação.
* Vamos testar os métodos do repositório da classe RequestStage e garantir a qualidade da nossa aplicação.
Putz. nos equivocamos na chamada dos métodos, vamos corrigir isso.
* Vamos criar a camada dos serviços do User;
* Vamos encriptar a senha do usuário com o Apache Commons Codec.
* Vamos criar a camada dos serviços do Request.
* Vamos criar a camada dos serviços do Request Stage;
* Vamos falar um pouco do REST, antes de começarmos a expor os dados ao cliente da nossa API.
* Vamos criar os recursos REST do User.
* Vamos criar os recursos REST do Request.
* Vamos criar os recursos REST do RequestStage.
* Vamos conhecer o POSTMAN;
* Vamos testar os recursos REST do User.
* Vamos testar os recursos REST do Request.
* Vamos testar os recursos REST do RequestStage.
* Vamos configurar a exceção para recursos não encontrados, o famoso 404.
* Vamos melhorar a performance da nossa API configurando o carregamento sobre demanda dos nossos recursos - Parte1.
* Vamos melhorar a performance da nossa API configurando o carregamento sobre demanda dos nossos recursos - Parte2.
* Vamos configurar valores defaults como parâmetros de paginação.
Este curso é um Kit completo para ajudar você a desenvolver APIs com o Spring Boot que podem se comunicar com componentes externos como aplicações moveis, aplicações web, aplicações desktops, web sites, etc. Desenvolvemos a API ao longo do curso pensando sempre em boas praticas, validando dados de entrada, configurando o carregamento sobre demanda de modo a obter melhor performance, configurando a ordenação dos dados por atributos de uma entidade, configurando a segurança com o Spring Security e JSON Web Token (JWT) com suporte a controle de acessos (ACL), libertação de recursos dependendo do ROLE / TIPO de usuário, configurando o upload de múltiplos ficheiros para a Amazon S3, retornando exceções especificas dependendo do tipo de problema.
Após a construção da API, disponibilizamos ela na maior provedora CLOUD – Amazon Web Services utilizando serviços como S3 (Simple Storage Service), RDS (Relational Database Service), Elastic beanstalk, EC2 (Elastic Cloud Computing) que são utilizados por várias empresas de sucesso como a Netflix, Slack, Samsung, NASA, entre outras em ambientes de produção.
Também existe uma secção no curso onde se explica passo a passo como automatizar o processo de implantação (CI/CD) da API com o Heroku e Github Actions.
O curso está em constante actualização com o objectivo de prover sempre conteúdos importantes, úteis e em grande demanda no mercado do trabalho e de desenvolvimento de software de modo a ajudar aos desenvolvedores a atingirem os seus objectivos.