API comprometida a entregar para GPSs as necessidades mais comuns de geolocalização.
- PostgreSQL - Banco que armazenará os POIs ou Pontos de Interesse;
- Docker - Alternativa leve às máquinas virtuais. Facilitou a instalação, execução e configuração do PostgreSQL envolvendo-o em um contêiner;
- Docker Compose - Auxilia o Docker, evitando que múltiplos contêineres sejam gerenciados separadamente. A administração é simplificada mesmo com apenas um contêiner;
- Eclipse Ogygen - IDE utilizada no projeto;
- Gradle - Gerenciador famoso de dependências e builds. Possibilitou todos os passos envolvidos no deploy da aplicação com um único comando;
- Postman - Cliente HTTP utilizado para os testes de caixa preta nos serviços;
- Spark Framework - Framework RESTful para rápido desenvolvimento. Permite testes de API produdivos, pois traz o Jetty embutido, Servlet Container bastante leve;
- JUnit - Ferramenta usada nos testes automatizados de API;
- Hibernate - Framework de persistência ORM;
- Weld - Implementação de referência da tecnologia CDI, injeção de dependências tanto em Java EE quando Java SE;
- Bean Validation - Validação de beans por meio de simples anotações e com suporte à internacionalização;
- REST Assured - Cliente para testar APIs em Java. Seu diferencial é uma DSL que descreve a requisição e a resposta de um endpoint de forma expressiva.
- Cadastro de POIs (Pontos de Interesse):
- Consulta de POIs cadastrados:
- Consulta POIs mais próximos de um PGS respeitando uma distância máxima. Os parâmetros x e y se referem à localização do GPS e d-max representa a distância máxima.
-
Baixe o repositório remoto do projeto para sua máquina com o comando:
git clone https://github.com/cleverton-heusner/xy-inc.git
-
No Eclipse, importe o repositório baixado como um projeto Gradle;
-
Para rodar a aplicação, vá até a raíz do projeto e digite o comando:
sudo gradle ligarGps
-
Neste momento, a aplicação deverá estar pronta para ouvir requisições na porta 4567. Com um cliente HTTP de sua preferência, envie para o endereço http://localhost:4567/ponto uma requisição POST contendo o seguinte JSON:
{ "nome": "Lanchonete", "x": 10, "y": 20 }
Se tudo deu certo, você verá na interface do cliente HTTP um código e uma mensagem de sucesso. Para visualizar o JSON do ponto recém-cadastrado, envie para a mesma URL uma requisição GET.
Cleverton Heusner