https://github.com/dougbrando/areaverde-api
Backend do projeto AreaVerde. Uma API REST construída com Java & Spring Boot que evoluiu de uma aplicação de console da faculdade para servir um frontend moderno em React.
https://github.com/dougbrando/areaverde-api
backend full-stack java json maven rest-api spring-boot
Last synced: about 2 months ago
JSON representation
Backend do projeto AreaVerde. Uma API REST construída com Java & Spring Boot que evoluiu de uma aplicação de console da faculdade para servir um frontend moderno em React.
- Host: GitHub
- URL: https://github.com/dougbrando/areaverde-api
- Owner: DougBrando
- Created: 2025-08-31T19:47:14.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-31T20:20:48.000Z (10 months ago)
- Last Synced: 2025-08-31T22:18:14.090Z (10 months ago)
- Topics: backend, full-stack, java, json, maven, rest-api, spring-boot
- Language: Java
- Homepage:
- Size: 32.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌳 AreaVerde - API



Este repositório contém o **backend** (API REST) da aplicação AreaVerde. Para o frontend (Interface Web) que consome esta API, acesse o repositório: **[areaverde-frontend](https://github.com/DougBrando/areaverde-frontend)**.
## 📖 Sobre o Projeto
Esta API foi construída com **Java e Spring Boot** para servir como o cérebro da aplicação AreaVerde. Ela é responsável por toda a lógica de negócio: gerenciar, cadastrar, listar e persistir os dados das áreas verdes.
### A Evolução de uma Ideia
Este projeto nasceu como uma aplicação de console em Java, desenvolvida para um trabalho de faculdade com foco em conceitos de Programação Orientada a Objetos, acesse o repositorio **[AreaVerde (Java)](https://github.com/DougBrando/AreaVerde.git). A motivação foi evoluir essa base de código para uma solução web moderna, transformando a lógica original em uma API RESTful completa, capaz de se comunicar com qualquer cliente web.
A API não utiliza um banco de dados tradicional. Em vez disso, ela faz a **persistência dos dados em um arquivo JSON local** (`dados_areas_verdes.json`), demonstrando uma solução de armazenamento simples e eficaz para projetos de pequeno e médio porte.
## ✨ Tecnologias Utilizadas
* **Java 17**: Linguagem principal da aplicação.
* **Spring Boot 3**: Framework para a criação da API, com as dependências:
* **Spring Web**: Para criar os endpoints RESTful e o servidor web embarcado (Tomcat).
* **Spring Boot DevTools**: Para live reload durante o desenvolvimento.
* **Maven**: Gerenciador de dependências e build do projeto.
* **Jackson**: Biblioteca para manipulação (serialização e desserialização) de JSON, integrada ao Spring.
* **Lombok**: Para reduzir código boilerplate (getters, setters, construtores).
## 📂 Estrutura do Projeto
A API foi organizada para separar as responsabilidades de cada camada da aplicação:
```
src/main/java/br/com/areaverde/api/
├── controllers/ # Camada que expõe os endpoints HTTP e recebe as requisições.
├── models/ # Classes que representam as entidades de negócio (AreaVerde, etc.).
├── repositories/ # Camada responsável pela persistência e acesso aos dados.
└── services/ # (Opcional) Camada para a lógica de negócio mais complexa.
└── ApiApplication.java # Ponto de entrada da aplicação Spring Boot.
# Na raiz do projeto, após a primeira execução:
dados_areas_verdes.json # Arquivo que funciona como "banco de dados".
```
## Endpoints da API
A API expõe os seguintes endpoints para manipulação dos dados de áreas verdes:
| Método HTTP | Endpoint | Descrição |
| :---------- | :----------------- | :------------------------------------------------ |
| `GET` | `/areasverdes` | Retorna uma lista com todas as áreas verdes cadastradas. |
| `GET` | `/areasverdes/{id}`| Retorna os detalhes de uma área verde específica pelo seu ID. |
| `POST` | `/areasverdes` | Cadastra uma nova área verde. |
---
### Exemplo de Uso: `POST /areasverdes`
Para cadastrar uma nova área, envie uma requisição `POST` com o seguinte formato no corpo (body) da requisição:
**Request Body (JSON):**
```json
{
"nome": "Parque Malwee",
"localizacao": {
"latitude": -26.4764,
"longitude": -49.0987
},
"tipoVegetacao": "Nativa, Lagos e Jardins",
"horariosFuncionamento": "07:30-19:00",
"atividadesDisponiveis": [
"Caminhada",
"Restaurantes",
"Eventos"
]
}
```
**Response (Sucesso - `201 Created`):**
```json
{
"id": 1,
"nome": "Parque Malwee",
"localizacao": {
"id": 1,
"latitude": -26.4764,
"longitude": -49.0987,
"idAreaVerde": 1
},
"tipoVegetacao": "Nativa, Lagos e Jardins",
"horariosFuncionamento": "07:30-19:00",
"atividadesDisponiveis": [
"Caminhada",
"Restaurantes",
"Eventos"
],
"avaliacoes": [],
"mediaAvaliacoes": 0.0
}
```
## 🚀 Como Executar a API
**Pré-requisitos:**
* Java (JDK 17 ou superior)
* Apache Maven
### Passos para Execução:
1. **Clone o repositório:**
```bash
git clone https://github.com/DougBrando/areaverde-api.git
```
2. **Navegue até a pasta do projeto:**
```bash
cd areaverde-api
```
3. **Execute a aplicação usando o Maven Wrapper:**
*No Windows (cmd ou powershell):*
```bash
./mvnw spring-boot:run
```
*No Linux ou macOS:*
```bash
./mvnw spring-boot:run
```
✅ A API estará em execução e pronta para receber requisições na porta `http://localhost:8080`.
## 👨💻 Autor
**Douglas Graça**
* GitHub: [@DougBrando](https://github.com/DougBrando)
* LinkedIn: [Douglas Graça](https://www.linkedin.com/in/douglas-graca/)