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