Ir para o conteúdo

API de Usuários

A API de Usuários é responsável por gerenciar todas as operações relacionadas aos usuários do sistema, como criação, consulta, atualização e exclusão.

Nota – Autenticação A maioria dos endpoints descritos abaixo requer autenticação via JWT.
Para acessá-los, é necessário enviar um token de autorização no cabeçalho da requisição:

Authorization: Bearer <seu_token_jwt>

1. Listar todos os usuários

Este método retorna uma lista com todos os usuários cadastrados na base de dados.

Endpoint:

GET /users

Parâmetros de Rota: Nenhum.

Exemplo de Resposta (200 OK):

[
  {
    "id": 1,
    "login": "admin",
    "name": "Administrador do Sistema",
    "active": true,
    "perfil": "Admin"
  },
  {
    "id": 2,
    "login": "joao.silva",
    "name": "João da Silva",
    "active": true,
    "perfil": "User"
  }
]

Códigos de Status:

  • 200 OK: Requisição bem-sucedida.
  • 401 Unauthorized: Falha na autenticação (token inválido ou não fornecido).

2. Consultar usuário por ID

Busca e retorna um usuário específico com base no seu id.

Endpoint:

GET /users/:id

Parâmetros de Rota:

Parâmetro Tipo Descrição
id number ID do usuário a ser consultado.

Exemplo de Resposta (200 OK):

{
  "id": 1,
  "login": "admin",
  "name": "Administrador do Sistema",
  "active": true,
  "perfil": "Admin"
}

Códigos de Status:

  • 200 OK: Usuário encontrado com sucesso.
  • 401 Unauthorized: Falha na autenticação.
  • 404 Not Found: Usuário com o id especificado não foi encontrado.

3. Consultar usuário por Login

Busca e retorna um usuário específico com base no seu login.

Endpoint:

GET /users-by-login/:login

Parâmetros de Rota:

Parâmetro Tipo Descrição
login string Login do usuário a ser consultado.

Exemplo de Resposta (200 OK):

{
  "id": 1,
  "login": "admin",
  "name": "Administrador do Sistema",
  "active": true,
  "perfil": "Admin"
}

Códigos de Status:

  • 200 OK: Usuário encontrado com sucesso.
  • 401 Unauthorized: Falha na autenticação.
  • 404 Not Found: Usuário com o login especificado não foi encontrado.

4. Criar um novo usuário

Este método cria um novo usuário no sistema. Este endpoint não requer autenticação.

Endpoint:

POST /users

Corpo da Requisição (application/json): O corpo da requisição deve conter um objeto User completo, com exceção do id.

Exemplo de Requisição:

{
  "login": "ana.pereira",
  "password": "uma_senha_forte_123",
  "name": "Ana Pereira",
  "active": true,
  "perfil": "User"
}

Exemplo de Resposta (201 Created):

{
  "id": 3,
  "login": "ana.pereira",
  "name": "Ana Pereira",
  "active": true,
  "perfil": "User"
}

Códigos de Status:

  • 201 Created: Usuário criado com sucesso.
  • 400 Bad Request: Dados inválidos ou faltando no corpo da requisição.
  • 409 Conflict: O login fornecido já existe na base de dados.

5. Atualizar um usuário

Atualiza as informações de um usuário existente, identificado pelo seu id.

Endpoint:

PUT /users/:id

Parâmetros de Rota:

Parâmetro Tipo Descrição
id number ID do usuário a ser atualizado.

Corpo da Requisição (application/json): O corpo da requisição deve conter um objeto com os campos do User a serem atualizados.

Exemplo de Requisição:

{
  "name": "Ana Pereira Souza",
  "active": false,
  "perfil": "Supervisor"
}

Exemplo de Resposta (200 OK):

{
  "id": 3,
  "login": "ana.pereira",
  "name": "Ana Pereira Souza",
  "active": false,
  "perfil": "Supervisor"
}

Códigos de Status:

  • 200 OK: Usuário atualizado com sucesso.
  • 400 Bad Request: Dados inválidos no corpo da requisição.
  • 401 Unauthorized: Falha na autenticação.
  • 404 Not Found: Usuário com o id especificado não foi encontrado.

6. Deletar um usuário

Remove permanentemente um usuário do sistema com base no seu id.

Endpoint:

DELETE /users/:id

Parâmetros de Rota:

Parâmetro Tipo Descrição
id number ID do usuário a ser deletado.

Exemplo de Resposta (200 OK):

{
  "message": "Usuário deletado com sucesso",
  "id": 3
}

Códigos de Status:

  • 200 OK: Usuário deletado com sucesso.
  • 401 Unauthorized: Falha na autenticação.
  • 404 Not Found: Usuário com o id especificado não foi encontrado.