Skip to content

API de para gerenciamento de documentação baseado em artigos e com autenticação

License

Notifications You must be signed in to change notification settings

JoaoVictorGI/base-conhecimento

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base Conhecimento API

API de Base de Conhecimento

Uma API REST em Spring Boot para gerenciar uma base de conhecimento com artigos e autenticação de usuários

Sobre o Projeto

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.

Construído Com

  • Spring
  • Java
  • Maven
  • PostgreSQL
  • JWT
  • Docker

Começando

Siga estas etapas para executar a API em seu ambiente local.

Pré-requisitos

  • JDK 11+
  • Maven
  • Docker e Docker Compose (para o banco de dados PostgreSQL)

Instalação

  1. Clone o repositório

    git clone https://github.com/seuusuario/base-conhecimento.git
  2. Inicie o banco de dados PostgreSQL com Docker Compose

    docker-compose up -d
  3. Construa o projeto com Maven

    mvn clean install
  4. Execute a aplicação

    mvn spring-boot:run
  5. A API estará disponível em:

    http://localhost:8080
    

Documentação da API

Endpoints de Autenticação

  • 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

Endpoints de Usuários

  • Obter Todos os Usuários: GET /users (requer autenticação)

Endpoints de Artigos

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

Recursos de Segurança

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

Esquema do Banco de Dados

A aplicação usa PostgreSQL com as seguintes entidades principais:

  • users: Armazena credenciais e papéis de usuário
  • articles: Armazena artigos da base de conhecimento
  • categories: Armazena categorias de artigos

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Licença

Este projeto é open source e está disponível sob a Licença MIT.

About

API de para gerenciamento de documentação baseado em artigos e com autenticação

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages