Skip to content

Commit 329ec2b

Browse files
committed
feat:(ANSWER) adding details and explanation of what I did in the api refactoring
1 parent 76b2bb7 commit 329ec2b

File tree

2 files changed

+51
-4
lines changed

2 files changed

+51
-4
lines changed

ANSWER.md

+49-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1-
DECISOES QUE TOMEI NO PROCESSO DE REFATORAÇÃO
1+
# DECISOES QUE TOMEI NO PROCESSO DE REFATORAÇÃO
22

3-
-
3+
- API de usuários usei o padrão Repository com contrato, junto com um serviço para a lógica de negócio e controladores limpos, resulta em um código mais organizado, fácil de manter.
4+
5+
- A separação das responsabilidades torna o código mais modular e fácil de manter. Alterações em uma camada (por exemplo, a lógica de negócio) não afetam diretamente outras camadas (por exemplo, o controlador).
6+
7+
## Separação de Responsabilidades
8+
9+
- InterfaceRepository: Define os métodos essenciais (all, find, create, update, delete) que qualquer repositório deve implementar.
10+
11+
- AbstractRepository: Implementa a interface InterfaceRepository e fornece a lógica básica para manipulação de modelos.
12+
13+
- UserRepository: Extende AbstractRepository e especifica que o modelo é User.
14+
15+
## UserService Service para Lógica de Negócio:
16+
17+
- UserService: Contém a lógica de negócio para manipulação dos usuários (busca, criação, atualização e deleção). O serviço interage com o repositório para realizar essas operações e formata a resposta.
18+
19+
## UserController Limpo
20+
21+
- UserController: Recebe as requisições, delega a lógica de negócio para o UserService e retorna as respostas formatadas.
22+
23+
## ValidateUserRequest Validação Centralizada
24+
25+
- ValidateUserRequest: Classe responsável pela validação dos dados de entrada para criação e atualização de usuários. Contém as regras e mensagens de validação.
26+
27+
## UserControllerTest Testes Automatizados
28+
29+
- Testes para garantir que os métodos do UserController funcionem conforme esperado. Isso inclui testar as operações de indexação, exibição, criação, atualização e deleção de usuários.
30+
31+
## Legibilidade e Clareza:
32+
33+
- A estrutura modular facilita a adição de novas funcionalidades ou a modificação das existentes sem causar grandes impactos na aplicação como um todo.
34+
35+
## Mudança no makefile
36+
37+
- A estrutura que estava como padrão não funcionava na minha maquina então adicionei uma condicional `||` para que funcione em outras versões inclusive a minha ex:
38+
`docker-compose down || docker compose down`
39+
40+
## Mudança no Readme.md
41+
42+
- a porta da aplicaçaõ estava em `http://localhost:8000`. Fiz a mudança para `http://localhost:8080`. O mesmo para a documentação `http://localhost:8000/api/documentation`. Fiz a mudança para `http://localhost:8080/api/documentation`.
43+
44+
45+
## Meio de Contato
46+
47+
- whats: (98) 984242805
48+
49+
50+
` Espero seu retorno ...`

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ Ensure that docker is running on your local machine.
4242
make up
4343
```
4444

45-
The application will be accessible at `http://localhost:8000`.
45+
The application will be accessible at `http://localhost:8080`.
4646

4747
### Documentation
4848

49-
The API is documented using Swagger. Ensure that your refactoring maintains or improves the clarity of the API documentation. The Swagger documentation can be accessed at `http://localhost:8000/api/documentation`.
49+
The API is documented using Swagger. Ensure that your refactoring maintains or improves the clarity of the API documentation. The Swagger documentation can be accessed at `http://localhost:8080/api/documentation`.
5050

5151
### Useful Makefile Targets
5252

0 commit comments

Comments
 (0)