A Simple Helpdesk API é uma API RESTful para o gerenciamento de técnicos, clientes e chamados. Com ela, é possível realizar o cadastro, gerenciamento e consulta de técnicos e clientes, além de registrar e acompanhar chamados que relacionam essas entidades. A API foi projetada para ser eficiente e segura, utilizando autenticação baseada em tokens JWT e permitindo uma fácil integração com sistemas externos.
-
Framework Java para criar aplicações standalone e web, com mínima configuração. -
Abstração para persistência de dados, facilitando a integração com bancos de dados. -
Framework que provê segurança para a aplicação, com autenticação e controle de acesso. -
Utiliza OAuth2 e JWT para autenticação segura e autorização baseada em tokens. -
Banco de dados relacional utilizado para armazenamento persistente. -
Banco de dados em memória usado para desenvolvimento e testes.
Aqui estão os principais endpoints da API:
-
Autenticação:
POST /authenticate
Endpoint responsável por autenticar os usuários. O formato da requisição é o seguinte:{ "email": "[email protected]", "senha": "1234" } Retorna um token JWT que deverá ser utilizado nas demais requisições.
GET /tecnicos
- Lista todos os técnicos.POST /tecnicos
- Cria um novo técnico.GET /tecnicos/{id}
- Retorna um técnico específico.PUT /tecnicos/{id}
- Atualiza as informações de um técnico.DELETE /tecnicos/{id}
- Remove um técnico (se não houver relação com chamados).
GET /clientes
- Lista todos os clientes.POST /clientes
- Cria um novo cliente.GET /clientes/{id}
- Retorna um cliente específico.PUT /clientes/{id}
- Atualiza as informações de um cliente.DELETE /clientes/{id}
- Remove um cliente (se não houver relação com chamados).
-
GET /chamados
- Lista todos os chamados. -
POST /chamados
- Cria um novo chamado. -
GET /chamados/{id}
- Retorna um chamado específico. -
PUT /chamados/{id}
- Atualiza o status ou informações de um chamado.⚠️ Nota: Chamados não podem ser excluídos após a criação.
A única rota liberada sem autenticação é a /authenticate
. Todas as outras rotas requerem o envio de um token JWT no cabeçalho da requisição:
Authorization: Bearer
Para a geração e validação do JWT, o sistema utiliza chaves RSA pública e privada que devem estar na pasta src/main/resources
com os seguintes nomes:
- app.key: Chave privada RSA usada para assinar os tokens.
- app.pub: Chave pública RSA usada para verificar os tokens.
Siga este tutorial para geração de chaves RSA.
A API possui três perfis de usuário:
- CLIENTE: Acesso restrito a chamados e dados relacionados a si mesmo.
- TÉCNICO: Acesso a dados de chamados e gerenciamento de clientes e chamados.
- ADMIN: Acesso total ao sistema, incluindo gerenciamento de técnicos e clientes.
Os chamados criados na API podem ter os seguintes status:
- ABERTO: Chamado recém-criado, aguardando resolução.
- EM ANDAMENTO: Chamado em processo de resolução.
- ENCERRADO: Chamado finalizado.
As prioridades de cada chamado podem ser definidas como:
- BAIXA
- MÉDIA
- ALTA