Projeto realizado como parte de aprendizado de Spring Boot e JPA
O desafio consiste em implementar uma API REST para cadastro e consulta de "Pontos de Interesse" (POIs – Points of Interest), onde cada ponto é representado por:
name
: nome do ponto (Ex: “Lanchonete”)coordX
: coordenada X (inteiro não negativo)coordY
: coordenada Y (inteiro não negativo)
A API deve permitir:
- Cadastrar novos pontos.
- Listar todos os pontos cadastrados.
- Buscar pontos próximos a uma coordenada específica, dentro de uma distância máxima.
String[] tecnologias = {
"Java 21",
"Spring Boot",
"Spring Data JPA",
"Maven",
"H2 Database (in-memory)",
"Swagger UI"
};
POST /points/create
Exemplo de JSON enviado
{
"name": "Casa",
"coordX": 13,
"coordY": 21
}
Retorno: Status 201 Created
com o objeto cadastrado
GET /points
Retorno:
[
{
"name": "Lanchonete",
"coordX": 27,
"coordY": 12
}
...
]
GET /points/nearby?max_distance=10&position_x=20&position_y=10
position_x
: posição X de referênciaposition_y
: posição Y de referênciamax_distance
: distância máxima
Retorno:
Lista de pontos que estão dentro da distância ≤ max_distance
em relação ao ponto (x, y).
Durante o desenvolvimento, foi utilizado o banco H2 em memória com dados inseridos automaticamente via CommandLineRunner
.
Você pode acessar o console do H2 em:
http://localhost:3000/h2-console
- JDBC URL:
jdbc:h2:mem:db_xy
- Username:
sa
- Password:
(vazio)
- JDK 17+
- Maven
git clone https://github.com/luismede/point-of-interest.git
cd point-of-interest
mvn spring-boot:run
A aplicação estará em: http://localhost:3000/swagger-ui/index.html#