Skip to content

absc1203/ApiSpringMongoDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

API simples utilizando Spring e MongoDB

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.

Linguagens e Ferramentas

  • Java 8
  • Spring Boot (2.5.0)
  • Robo 3T e MongoDB
  • Postman para testar os endpoints

Faça o clone do projeto

  • git clone https://github.com/absc1203/ApiSpringMongoDB.git
  • Importe na sua IDE (Eclipse, IntelliJ, etc)
  • E depois compile o arquivo EmpresaTesteApplication.java

Estrutura do Projeto

Foi utilizado o padrão MVC do Spring, cada camada com sua devida responsabilidade.

  • Model
  • Repository
  • Service
  • Controller

pacotes

Diferença de uma model de banco relacional e não relacional

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.

imgAndré

Testando os Endpoints

Camada controller

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.

Controller

Criando funcionario

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.

criando funcionario

Buscando todos os funcionários

Esse método não tem muito detalhe, é um simples findAll para trazer todos os funcionários cadastrados.

buscando funcionarios

Buscando funcionário por ID e buscando por NOME

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.

busca id

Teste no Postman

busca id postman

Já na busca pelo nome o @RequestParam foi utilizado para pegar os dados da URL e fazer o método funcionar

busca nome

Teste no Postman

busca nome postman

Uma amostra de como ficam armazenados os dados no Robo 3T

3t

About

Repositório criado para aplicar conhecimento na criação de uma API utilizando Spring e MongoDB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages