xy-inc

Requisitos necessários para rodar o projeto:

  • JDK 8
  • Maven
  • MongoDB
  • Spring Tool Suit (Somente para importar o projeto -> File > Import > Existinn Mavem Projects)

Obs. O Spring Toll Suit é para importar o projeto e ver a estrutura do projeto. Mas também pode ser feito pelo Eclipse.


Obs: Tanto o banco de dados MongoDB(Embedded) quanto o servidor (Apache Tomcat) são embarcados e rodam no mesmo ciclo de vida da aplicação.

O MongoDB está pré configurado para rodar na porta: 27017, mas caso queira mudar as configurações iniciais, para rodar em ambiente externo ao Embedded, basta alterar o application.properties com um modelo parecido com o exemplo que segue abaixo.

spring.data.mongodb.host=mongoserver
spring.data.mongodb.port=27017

O Tomcat está configurado para rodar na porta: 8080


Executando os testes automatizados

  • Temos 03 formas de executar os testes
1) Na raiz do projeto execute: mvn clean test
2) Caso a porta 8080 esteja em uso por outra aplicação, rode o comando: 'mvn clean test -Dserver.port=8090' para alterar a porta caso precise.
3) Vá no projeto e procure pelo arquivo XyIncApplicationTests.java e click com o botão direito dentro desta classe e execute : Run as > Junit Test

O resultado esperado é a execução de 09 casos de testes com sucesso.

Executando a aplicação

  • Temos 03 formas de exeutarmos a aplicação
1 - Na raiz do projeto execute o comando: mvn clean package && java -jar target/xy-inc-0.0.1-SNAPSHOT.jar

2 - Na raiz do projeto execute o comando: mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8081' , alterando a porta caso precise.

3 - Com o projeto importado no Spring Tool Suite - Procure pela classe java: XyIncApplication.java e click com o botão direito em Run as -> Spring boot App ou Run as -> Java Application

Serviços disponíveis:

GET - Lista todos os pontos de interesse

Exception esperada no Brownser nos casos em que não encontrar nenhum registro

exceptionexperada404

POST - Cadastra novo ponto de interesse através de Payload json, conforme exemplo abaixo.

Execute um a um cada objeto de json abaixo.

[
  {
    "nome": "Lanchonete",
    "coordenadaX": 27,
    "coordenadaY": 12
  },
  {
    "nome": "Posto",
    "coordenadaX": 31,
    "coordenadaY": 18
  },
  {
    "nome": "Joalheria",
    "coordenadaX": 15,
    "coordenadaY": 12
  },
  {
    "nome": "Floricultura",
    "coordenadaX": 19,
    "coordenadaY": 21
  },
  {
    "nome": "Pub",
    "coordenadaX": 12,
    "coordenadaY": 8
  },
  {
    "nome": "Supermercado",
    "coordenadaX": 23,
    "coordenadaY": 6
  },
  {
    "nome": "Churrascaria",
    "coordenadaX": 28,
    "coordenadaY": 2
  }
]

Exemplo de POST inserir

exemplopostinserrir

GET - Lista todos os pontos de interesse mais próximos de acordo com as coordenadas e a dinstância passada

Edite a URL na medida quer for preciso alterando apenas os parâmetros que seguem: coordenadaX=?, coordenadaY=?, distancia=?

Exemplo de GET com parâmetros com sucesso

exemplogetcomparametros

Exemplo de GET quando não encontra nenhum registro. O sistema dispara NotFound

exemplogetquandonaofoiencontradonenhumpontointeresse

Exemplo de POST com parâmetros fora do esperado

exemploposterro