Guia de Integração Frontend¶
Este guia detalha como um aplicativo frontend pode interagir com a API refatorada, focando nos endpoints de usuário e autenticação.
Formato de Dados (DTOs)¶
As requisições e respostas da API seguem os DTOs definidos na camada de aplicação. É crucial que o frontend envie e espere dados nesses formatos.
Exemplo: Criação de Usuário¶
Requisição (Input):
- Endpoint:
POST /v1/users/ -
Body (JSON): Corresponde a
CreateUserRequest
Resposta (Output):
- Status:
201 Created(sucesso),400 Bad Request(erro de validação/domínio) -
Body (JSON): Corresponde a
CreateUserResponse(eUserReadSerializer)
Exemplo: Login de Usuário¶
Requisição (Input):
- Endpoint:
POST /v1/login/ -
Body (JSON): Corresponde a
LoginUserRequest
Resposta (Output):
- Status:
200 OK(sucesso),400 Bad Request(credenciais inválidas) -
Body (JSON): Corresponde a
LoginUserResponse
Autenticação no Frontend¶
Após o login, o frontend receberá access_token e refresh_token. O access_token deve ser incluído em todas as requisições subsequentes a endpoints protegidos (que exigem autenticação, como listar usuários ou alterar senha) no cabeçalho Authorization como um Bearer Token.
Exemplo de cabeçalho em uma requisição fetch/axios:
Exemplo: Listar Usuários¶
Requisição (Input):
- Endpoint:
GET /v1/users/list/ - Cabeçalhos: Necessita
Authorization: Bearer <access_token>de um usuário com permissão (IsAdminUser). - Body: Não aplicável
Resposta (Output):
- Status:
200 OK(sucesso),401 Unauthorized(sem token),403 Forbidden(sem permissão) -
Body (JSON): Corresponde a
ListUsersResponse
Exemplo: Obter Detalhes de um Usuário por ID¶
Requisição (Input):
- Endpoint:
GET /v1/users/:id/ - Cabeçalhos: Necessita
Authorization: Bearer <access_token>de um usuário com permissão (IsAdminUser). - Parâmetros de URL:
:idé o ID do usuário (UUID). - Body: Não aplicável
Resposta (Output):
- Status:
200 OK(sucesso),401 Unauthorized,403 Forbidden,404 Not Found -
Body (JSON): Corresponde a
CreateUserResponse(eUserReadSerializer)
Exemplo: Alterar Senha de Usuário¶
Requisição (Input):
- Endpoint:
PUT /v1/users/alter_password/:id/ - Cabeçalhos: Necessita
Authorization: Bearer <access_token>de um usuário com permissão (IsAdminUser). - Parâmetros de URL:
:idé o ID do usuário (UUID). -
Body (JSON): Corresponde a
ChangeUserPasswordRequest
Resposta (Output):
- Status:
200 OK(sucesso),400 Bad Request(senha antiga incorreta),401 Unauthorized,403 Forbidden,404 Not Found -
Body (JSON): Corresponde a
ChangeUserPasswordResponse