Projeto desenvolvido para expandir o conhecimento de Spring Boot para bancos NoSQL, aplicar alguns conceitos de SOLID e otimizando a estrutura e nomenclatura de variáveis baseado no conveito de Clean Code.
- Java 8
- Spring Boot (2.5.0)
- Robo 3T e MongoDB
- Postman para testar os endpoints
- git clone
https://github.com/absc1203/ApiSpringMongoDB.git - Importe na sua IDE (Eclipse, IntelliJ, etc)
- E depois compile o arquivo
EmpresaTesteApplication.java
Foi utilizado o padrão MVC do Spring, cada camada com sua devida responsabilidade.
- Model
- Repository
- Service
- Controller
Para o modelo relacional normalmente no Spring utilizamos o @Entity, porém no NoSQL estamos falando de um banco orientado a documento, por isso para dizermos que nossa model é um documento utilizamos a notação @Document.
Na camada de controller temos a classe FuncionarioController com os endpoints da API, temos um CRUD (Create, Read, Update e Delete) incompleto já que nesse exemplo somente o CREATE e o READ foram utilizados.
Perceba que na model vista no tópico "Diferença de uma model de banco relacional e não relacional" possuí o Id como String, isso foi deixado propositalmente já que ele será preenchido automaticamente por um Hash, veja o exemplo abaixo.
Esse método não tem muito detalhe, é um simples findAll para trazer todos os funcionários cadastrados.
Esses métodos são um pouco mais complexos já que exigem dados de entrada (parametros) para funcionar. Veja que duas maneiras de conseguir esses dados.
Uma delas é usando o @PathVariable para buscar na URL estática do domínio.
Teste no Postman
Já na busca pelo nome o @RequestParam foi utilizado para pegar os dados da URL e fazer o método funcionar
Teste no Postman









