Camada de Apresentação (API Django REST Framework)¶
Esta camada é responsável por apresentar os dados ao usuário e receber entradas. Ela atua como um adaptador, traduzindo as requisições HTTP para os DTOs dos casos de uso e as respostas dos casos de uso para o formato JSON da API.
-
project/core/api/deps.py: Criado um simples injetor de dependências para fornecer as instâncias concretas dos repositórios e gateways aos casos de uso. Isso garante que as views e casos de uso não precisem saber sobre as implementações concretas.- Funções como
get_user_repository(),get_create_user_use_case(),get_auth_gateway(),get_login_user_use_case(),get_change_user_password_use_case(),get_list_users_use_case()eget_get_user_by_id_use_case()foram adicionadas.
- Funções como
-
project/core/api/v1/serializers/user.py: Os serializadores foram adaptados para trabalhar com os DTOs dos casos de uso em vez de diretamente com os modelos do Django. Novos serializadores incluemUserReadSerializer,UserCreateRequestSerializer,LoginRequestSerializer,LoginResponseSerializer,UserAlterPasswordSerializereUserListResponseSerializer. -
project/core/api/v1/views/user.py: As views foram modificadas para:- Injetar os casos de uso relevantes usando as funções do
deps.py. - Converter os dados da requisição HTTP para os DTOs de entrada do caso de uso.
- Chamar o método
executedo caso de uso. - Converter os DTOs de saída do caso de uso para as respostas HTTP JSON.
UserCreateAPIView: UsaCreateUserUseCase.UserListAPIView: UsaListUsersUseCase.UserAlterPasswordAPIView: UsaChangeUserPasswordUseCase.UserRetrieveAPIView: UsaGetUserByIdUseCase.
- Injetar os casos de uso relevantes usando as funções do
project/core/api/v1/views/auth.py: Criada aLoginAPIViewque utiliza oLoginUserUseCasepara autenticação.