Skip to content

joaodddev/placeservice-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

📍 PlaceService API

API REST para gerenciamento de lugares (places), desenvolvida com Java e Spring Boot.

🚀 Tecnologias

  • Java 21
  • Spring Boot 3.x
  • Spring Data JPA
  • H2 Database (in-memory)
  • Lombok
  • SpringDoc OpenAPI (Swagger UI)
  • Maven

✅ Funcionalidades

  • 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)

📋 Endpoints

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

📦 Body (POST / PUT)

{
  "name": "Parque Ibirapuera",
  "city": "São Paulo",
  "state": "SP"
}

💡 Resposta de exemplo

{
  "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"
}

▶️ Como executar

# Clone o repositório
git clone https://github.com/seu-usuario/placeservice-api.git

# Entre na pasta
cd placeservice-api

# Execute
./mvnw spring-boot:run

A API estará disponível em http://localhost:8080

📚 Documentação

Após subir a aplicação, acesse o Swagger UI:

http://localhost:8080/swagger-ui.html

🗄️ Console H2

http://localhost:8080/h2-console
JDBC URL: jdbc:h2:mem:placedb
User: sa | Senha: (vazio)

🏗️ Arquitetura

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

📁 Estrutura do projeto

src/
├── controller/
│   └── PlaceController.java
├── service/
│   └── PlaceService.java
├── repository/
│   └── PlaceRepository.java
├── model/
│   └── Place.java
└── dto/
    ├── PlaceRequestDTO.java
    └── PlaceResponseDTO.java

About

API REST de gerenciamento de lugares (places) [Java]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages