Introdução
  • Sobre o curso
  • O que é um web service?
  • Instalação Java, Eclipse Spring Tools e IntelliJ IDEA
  • Código-Fonte dos exemplos (GitHub)
  • Dúvidas e ajuda
Criando um projeto
  • Criando um projeto com o Spring Initializr
  • Eclipse Spring Tool Suite (STS)
  • IntelliJ IDEA
  • Arquivo pom.xml
  • Classe de Application
Resumo das seções 4 a 8
  • Introdução Resumo - para desenvolvedores avançados
  • Resumo
  • O arquivo application.properties
Web Services - básico
  • Criando o IndexController
  • @RequestMapping
  • GET - POST - DELETE - PUT
  • GET - @RequestParam
  • @PathVariable
  • POST - @RequestParam
API dos Carros
  • Lista de Carros básico
  • Criando as tabelas no MySQL
  • Configurando o MySQL/JPA
  • @Service - Injeção de dependências com Spring
  • Ajuste Timezone MySQL
  • JPA - Lista de Carros do banco de dados
  • @Id @GeneratedValue (Auto vs Identity)
  • Get Carro By Id
  • Get Carro By Tipo
  • POST - Salvar Carro
  • PUT - Atualizar o Carro
  • DELETE - Excluir um Carro
HTTP Status Code - Parte 1
  • Status Code de retorno do protocolo HTTP
  • ResponseEntity
  • GET - 404 Not Found
  • GET - 204 No Content (CrudRepository)
DTO (Data Transfer Object)
  • O projeto Lombok
  • Lombok no Eclipse
  • DTO - Data Transfer Object e JPARepository
  • DTO - parte 2 - lambdas
  • Model Mapper
HTTP Status Code - Parte 2 - POST PUT DELETE
  • POST - 201 Created - URI location
  • PUT - Correção
  • PUT
  • DELETE
Testes com Spring Boot
  • Testes com Spring Boot
  • Teste para Inserir um Carro
  • Teste para inserir e Deletar um Carro
  • A necessidade de termos um banco de dados para testes
  • H2 - banco de dados em memória para testes
  • Preenchendo o H2 com uma massa de testes
  • Testes HTTP na API
Documentação com Swagger
  • Documentação com Swagger
Tratamento de erros e exceções
  • ExceptionHandler - parte 1
  • ExceptionHandler - parte 2
  • ResponseStatus
  • ResponseEntityExceptionHandler
Segurança
  • Spring Security
  • Customizando a senha de autenticação
  • SecurityConfig
  • Basic Authentication
  • CSRF - Cross-Site Request Forgery
  • Memory Authentication e Perfis de acesso (ROLES)
  • UserDetails
  • UserDetailsService
  • Database Authentication - parte 1 - User
  • Database Authentication - parte 2 - Roles
  • Testes na API de Segurança
Deploy
  • Fazendo o build de um jar
  • Deploy no Heroku com GitHub
  • Deploy no Heroku Git
  • Profiles - prod vs dev
Upload de Arquivos
  • Firebase Storage
  • Base64
  • Firebase Storage - configurações (parte 1)
  • Firebase Storage - configurações (parte 2)
  • Firebase Storage - código
  • Testes unitários
Segurança e Token JWT
  • CORS
  • Introdução ao JWT
  • JWT Token na prática
  • Preparando o código (parte 1)
  • Preparando o código (parte 2) - testes
  • Gerando e validando o Token JWT (JWTUtil)
  • JWT AuthenticationFilter
  • JWT AuthorizationFilter