Projeto desenvolvido no Bootcamp: GFT Start #3 Java - Explorando Padrões de Projetos na Prática com Java. Desafio que pude desenvolver uma api seguindo alguns Design Patterns: Singleton, Strategy e Facade.
- Java JDK 11
- IDE IntelliJ
- Documentação e consumo no Swagger
- Banco de Dados MySQL
- Estrutura - spring initializr
🔸 Visão geral: Sistema de cadastro de unidades (apartamentos) em um condominio e o controle de entrega, além do registro de ocorrências
-
👣 Solução
🔻 Padrão Singleton - garantir que uma classe tenha apenas uma instância de si mesma e que forneça um ponto global de acesso a ela:
🔹 Utilização de anotações @Bean e @Autowired ;
🔻 Padrão Strategy - Criar uma Estratégia para cada variante e faz com que o método delegue o algoritmo para uma instância de Estratégia:
🔹 Utilização de anotações @Service e @Repository ;
🔻 Padrão Faced - diminue a complexidade geral do aplicativo:
🔹 Criação de uma API para abstrair a complexidade do back end e repositorio para o usuário do condominio.
🔸 Security
Utilização do JWT para geração e validação de token para autenticação.
Spring Security para solução de segurança
Autenticação de usuario e senha via Banco de dados
🔗No Controlador de acesso:
🔻 Realiza o metodo post, utilizando o username e a senha do usuário;
🔻 Cadastrado, no Banco, dois usuários para teste:
Perfil ADMIN: Username (Admin) senha (123456)
Perfil User: Username (Usuario) senha (654321)
🔻 Executando o metodo post, recebe o token e cadastra no autorizador (Cadeaddo no canto superior direito);
🔻 Pronto! Você está autorizado para utilizar os serviços que possui autenticação liberada(conforme consta na descrição de cada metodo.
Disponibilizado por Emerson.