DESAFIO DE PROJETO 3 - Realizando Deploy na Nuvem de um conjunto de API’s desenvolvida em Spring Boot
Construir uma API para controle de um estacionamento de veículos. Está API deverá controlar entrada e saída de veículos.
Os dados deverão ser cadastrados em um banco de dados relacional.
Esta API será exposta na nuvem, porém com controle de acesso.
- Criação do projeto utilizando o Spring Initializr, com a dependência Spring Web
- Criação do repositório no GitHub
- Criação da aplicação no Heroku, conectar ao GitHub e habilitar deploy automático
- Configuração da versão do Java (caso necessário)
- Criação de Endpoints de cadastro (Model e Service)
- Implementação dos códigos de retorno HTTP de acordo com a operação
- Implementação e configuração do Swagger-UI para disponibilizar para o front-end
- Tratamento de exceções - deixar claro para o consumidor o motivo de um erro
- Implementação de Testes automatizados de API
- Implementação das dependências maven e banco de dados (no caso o PostgreSQL) no pom.xml
- Preparação da Entidade Parking
- Iniciação do container do banco de dados (Docker)
- Download plugin DB Browser (IDE - IntelliJ)
- Configuração do Spring Data JPA e criando a tabela no banco de dados
- Criação da interface repository
- Atualização classe "ParkingService.Java"
- Implementação dos algoritmos da regra de negócio e realização do cálculo de dias e horas
- Teste de todos os métodos via swagger
- Inclusão de transação
- Configuração do Heroku
- Configuração de segurança - adicionar dependência Spring Security
- Criação da classe de configuração
- Tornando API pública