Este projeto é o backend da aplicação ADS, uma API RESTful desenvolvida com Spring Boot. Ele gerencia a lógica de negócio do site, incluindo autenticação de administradores, notícias, e a grade curricular do curso.
- Java 21: Linguagem principal da API.
- Spring Boot 3.x: Framework para desenvolvimento rápido e robusto.
- Spring Data JPA: Para comunicação com o banco de dados.
- MySQL: Banco de dados relacional.
- Spring Security & JWT: Para autenticação e autorização.
- Maven: Gerenciador de dependências.
Certifique-se de ter as seguintes ferramentas instaladas:
- JDK 21
- Maven
- MySQL Server rodando
Crie um banco de dados MySQL e, em seguida, atualize o arquivo https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip com suas credenciais:
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zipO Spring Data JPA cuidará de criar as tabelas automaticamente para você.
Se você precisa que a funcionalidade de aprovação de administradores por e-mail funcione, configure uma conta do Gmail no mesmo arquivo:
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zip
https://raw.githubusercontent.com/devwarly/ads-backend-java-springboot-apinoticias/main/src/java-springboot-ads-apinoticias-backend-1.1.zipDica: Por segurança, utilize uma senha de aplicativo do Google em vez da sua senha principal.
Abra o terminal na pasta raiz do projeto e execute o comando:
./mvnw spring-boot:runA API estará disponível em http://localhost:8080.
As rotas são protegidas com Spring Security e organizadas da seguinte forma:
| Método | Rota | Descrição | Permissões |
|---|---|---|---|
POST |
/login |
Autentica um admin. | Pública |
POST |
/request-access |
Solicita acesso de admin. | Pública |
POST |
/register-admin |
Finaliza o cadastro. | Pública |
GET |
/requests |
Lista solicitações pendentes. | MASTER_ADMIN |
POST |
/requests/approve/{id} |
Aprova uma solicitação. | MASTER_ADMIN |
DELETE |
/delete-account |
Exclui a conta logada. | Autenticado |
| Método | Rota | Descrição | Permissões |
|---|---|---|---|
GET |
/noticias |
Retorna todas as notícias. | Pública |
POST |
/noticias |
Cria uma nova notícia. | ADMIN, MASTER_ADMIN |
PUT |
/noticias/{id} |
Atualiza uma notícia. | ADMIN, MASTER_ADMIN |
DELETE |
/noticias/{id} |
Exclui uma notícia. | ADMIN, MASTER_ADMIN |
POST |
/upload |
Faz upload de imagem. | ADMIN, MASTER_ADMIN |
GET |
/curriculo |
Retorna a grade curricular. | Pública |
POST |
/curriculo |
Adiciona um novo período. | MASTER_ADMIN |
PUT |
/curriculo/{id} |
Atualiza um período. | MASTER_ADMIN |