API REST para gerenciamento de lugares (places), desenvolvida com Java e Spring Boot.
- Java 21
- Spring Boot 3.x
- Spring Data JPA
- H2 Database (in-memory)
- Lombok
- SpringDoc OpenAPI (Swagger UI)
- Maven
- Cadastro de lugares com geração automática de slug
- Listagem de todos os lugares
- Filtro por nome (busca parcial, case-insensitive)
- Busca por ID
- Atualização de lugares
- Remoção de lugares
- Timestamps automáticos (
createdAt/updatedAt)
| Método | Endpoint | Descrição |
|---|---|---|
POST |
/places |
Cria um novo lugar |
GET |
/places |
Lista todos os lugares |
GET |
/places?name=x |
Filtra lugares por nome |
GET |
/places/{id} |
Busca um lugar por ID |
PUT |
/places/{id} |
Atualiza um lugar |
DELETE |
/places/{id} |
Remove um lugar |
{
"name": "Parque Ibirapuera",
"city": "São Paulo",
"state": "SP"
}{
"id": 1,
"name": "Parque Ibirapuera",
"slug": "parque-ibirapuera",
"city": "São Paulo",
"state": "SP",
"createdAt": "2026-03-23T11:00:00",
"updatedAt": "2026-03-23T11:00:00"
}# Clone o repositório
git clone https://github.com/seu-usuario/placeservice-api.git
# Entre na pasta
cd placeservice-api
# Execute
./mvnw spring-boot:runA API estará disponível em http://localhost:8080
Após subir a aplicação, acesse o Swagger UI:
http://localhost:8080/swagger-ui.html
http://localhost:8080/h2-console
JDBC URL: jdbc:h2:mem:placedb
User: sa | Senha: (vazio)
Controller → Service → Repository → H2 (in-memory)
- Controller — recebe requisições HTTP e valida os dados de entrada
- Service — contém a lógica de negócio e geração de slug
- Repository — interface com o banco via Spring Data JPA
- DTO — objetos de transferência separados da entidade
src/
├── controller/
│ └── PlaceController.java
├── service/
│ └── PlaceService.java
├── repository/
│ └── PlaceRepository.java
├── model/
│ └── Place.java
└── dto/
├── PlaceRequestDTO.java
└── PlaceResponseDTO.java