Uma API REST em Spring Boot para gerenciar uma base de conhecimento com artigos e autenticação de usuários
Base Conhecimento é uma API RESTful construída com Spring Boot que fornece:
- Autenticação e autorização de usuários com JWT
- Gerenciamento de artigos com categorias
- Controle de acesso baseado em funções (papéis de ADMIN e USER)
O projeto segue práticas modernas de desenvolvimento e utiliza o Spring Security para uma robusta autenticação.
Siga estas etapas para executar a API em seu ambiente local.
- JDK 11+
- Maven
- Docker e Docker Compose (para o banco de dados PostgreSQL)
-
Clone o repositório
git clone https://github.com/seuusuario/base-conhecimento.git
-
Inicie o banco de dados PostgreSQL com Docker Compose
docker-compose up -d
-
Construa o projeto com Maven
mvn clean install
-
Execute a aplicação
mvn spring-boot:run
-
A API estará disponível em:
http://localhost:8080
-
Registrar Usuário:
POST /auth/register
{ "email": "[email protected]", "password": "senha", "role": "USER" }
-
Login:
POST /auth/login
{ "email": "[email protected]", "password": "senha" }
Retorna um token JWT para usar em requisições autenticadas
- Obter Todos os Usuários:
GET /users
(requer autenticação)
- Obter Todos os Artigos:
GET /articles
(requer autenticação) - Criar Artigo:
POST /articles
(requer papel de USER){ "title": "Título do Artigo", "content": "Conteúdo do artigo vai aqui", "categoryId": 1 }
A API implementa:
- Autenticação baseada em JWT
- Criptografia de senha usando BCrypt
- Autorização baseada em papéis (ADMIN e USER)
- Gerenciamento de sessão stateless
A aplicação usa PostgreSQL com as seguintes entidades principais:
users
: Armazena credenciais e papéis de usuárioarticles
: Armazena artigos da base de conhecimentocategories
: Armazena categorias de artigos
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Este projeto é open source e está disponível sob a Licença MIT.