Este projeto foi criado para auxiliar uma seção de RPG, armazenando infromações das fichas, relacionamentos e detalhes da crônica. Para uso completo, será necessario um front para uma melhor experiencia de usuário, o que será feita em outro projeto.
- Instalação
- Configuração
- Uso
- API Endpoints
- Autenticação
- Database
- Clonar o repositório
- Instalar as dependencias com o Maven
- Instalar o Postgres (https://www.postgresql.org/)
No application.properties estão as configurações da base de dados como usuário e senha de acesso ao Postgres. As configurações devem ser alteradas de acordo com o seu usuario e senha no Postgres, porta de acesso e nome da base de dados.
Esta API fornece os seguintes Endpoints:
-- Personagens (Acesso autenticado) --
GET /personagem/{id} - Retorna o personagem do id em questão.
GET /personagem/bycronica/{idCronica} - Retona uma lista com os personagens na cronica em questão.
POST /personagem - Adiciona um personagem.
##Parametros: Personagem
PUT /personagem - Edita um personagem
##Parametros: Personagem
PATCH /personagem - Edita atributos especificos de um personagem (Atributo de dinheiro não pode ser alterado neste endpoint)
##Parametros: Personagem
PATCH /personagem/alterarDinheiro/{id}/{novaQuantia} - Edita a quantia de dinheiro do personagem com o id em questão.
DELETE /personagem/{id} - Apaga o personagem com o id em questão.
-- Crônica (Acesso de ADMIN) --
GET /cronica - Retorna todas as cronicas.
GET /cronica/{id} - Retorna a cronica do id em questão.
GET /cronica/byname/{nome} - Retorna a cronica com o nome em questão.
POST /cronica - Adiciona uma nova cronica.
##Parametros: {nome : String, personagens : List<String>}
-- Autenticação --
POST /auth/login - Login na aplicação
POST /auth/register - Registrar um novo usuário com nivel de acesso USER.Esta API utiliza o Spring Security para altenticação, os seguintes niveis de acesso estão disponiveis:
USER -> Padrão para uso da API.
ADMIN -> Acesso de gerenciamento dos recursos das cronicas e recursos.
Para acessar os endpoints de nível ADMIN sera necessario prover o token adequado pelo header da requisição.
Este projeto utiliza o Postgres como base de dados.
Este projeto é uma ideia que eu tenho a algum tempo e gostaria de trabalhar nela para uso proprio e de outros jogadores e narradores de RPG, contribuições são muito bem vindas, e principalmente o feedback de consumo dos endpoits em cenários reais de uso.