Muito simples, mas com um detalhe bastante útil.
Em sua maior parte, este projeto é basicamente um clone do template que a Spring recomenda em Accessing MongoDB Data with REST.
Esse template já suporta as operações CRUD com o MongoDB.
Mas o que o template não te ensina é como personlizar a implementação de uma consulta (Query) no MongoDB.
É isso mesmo! \o/ Como todo o acesso ao MongoDB é feito dentro da 'caixa preta' do framework da Spring, se você precisar personalizar um acesso ao MongoDB, ou até mesmo desenvolver um processo de inversão de controle no seu código (IOC), você vai precisar fazer o seguinte:
- Primeiro crie uma interface que representa essa personalização: PlanetaRepositoryCustom
- Depois crie uma classe (PlanetaRepositoryCustomImpl) que implementa sua interface (PlanetaRepositoryCustom). E escreva o que quiser.
- E para que sua implementação faça parte do fluxo HATEOAS do framework Spring, inclua mais uma dependência hieraquica na interface do seu documento (PlanetaRepository). Ainda bem que podemos fazer isso com as Interfaces, não é mesmo?
Criar uma API (serviço de dados) conforme solicitado pelo desafiante!!! o/
Requisitos:
- API REST
- O Documento (Planeta) devem ter a seguinte estrutura: Nome do planeta; Clima característico do Planeta e Terreno predominante do Planeta
- A API deve possibilitar a inserção manual dos Documentos
- Para cada planeta devemos ter como obter a quantidade de aparições nos filmes da franquia Star Wars
- Para obter os dados dos planetas, acesse o site SWAPI The Star Wars API
Funcionalidades desejadas:
- Adicionar um planeta (com nome, clima e terreno)
- Listar planetas
- Buscar por nome
- Buscar por ID
- Remover planeta
Instalação
https://github.com/mariobacellar/startwarsb2w.git
Execução
Entre no diretório onde está o starwarsb2w-0.0.1-SNAPSHOT.jar
Digite $java -jar ./starwarsb2w-0.0.1-SNAPSHOT.jar br.com.b2w.starwars.StarWarsB2wApplication
Assim que a API subir, digite $curl http://localhost:8080/planeta/search
Author
Mario da Costa Bacellar é SME em Integração de Sistemas atualmente trabalha no mercado de Banking como Arquiteto de Solução com foco em Integração Digital. Ele é pós graduado pela Universidade Federal do Rio de Janeiro (@2015) em Engenharia da Computação (MBA). Atuando no mercado corporativo em integração de sistemas (SOA) desde 2001, passa o tempo publicando textos e códigos simples por ai \o/
Fale Comigo o/
- Accessing MongoDB Data with REST - Guide
- Accessing MongoDB Data with REST - Github
- HAL - Hypertext Application Language
©2020 No Copyright, You can share! \o/
This code was developed in the middles of COVID outbreak in quarantine regime.