Apresentar o Backend de uma API de listagem de serviços disponibilizados pelos próprios usuários do sistema.
- Linguagem utilizada Java 17, JDK - Spring Boot;
- IDE: STS - Spring Tools 4 Suite;
- Banco de dados: MySQL;
- IDE do banco de dados: MySQL Workbench;
- Acesso a internet e navegador WEB.
- Spring Web;
- Spring Boot DevTools;
- Spring Data JPA;
- MySQL driver;
- Lombok;
- Dozer;
- Swagger ;
- Flyway.
Foram criadas cinco entidades modelos com cada uma possuindo os seus respectivos atributos e métodos gets e sets gerados automaticamente pelo lombok.
Atributos:
- long id;
- String nome;
- String email;
- String endereço;
- String Login;
- String password;
Atributos:
- long id;
- String nome;
- String matricula;
- String status;
- String Login;
- String password;
Atributos:
- long id;
- String nome;
- String descrição;
- String status;
Atributos:
- long id;
- String nome;
- String descricao;
- String status;
- String adicional;
Atributos:
- long id;
- String nome;
- String numero;
- String agência;
- String codigoSegurança;
Seguindo os conceitos deste padrão, dividimos a API nas seguintes camadas.
Representa as entidades;
Contém a lógica de negócios;
Gerencia as requisições da interface do usuário;
Responsável pelas operações de acesso a dados, isolando-as das outras camadas.
O padrão DTO foi aplicado na camada modelo e assim ,ajudou a desacoplar a comunicaçao entre a camada de modelo da camada de serviço e de controller a ainda foi útil para exibir ao usuário apenas os dados necessários. Sua estrutura foi a seguinte:
-
data.model ( com a entidade de negócio);
-
data.DTO ( com a entidade __DTO e __LowDTO)
Todo o DDL das tabelas das entidades foram executados via Migration. Através do caminho resources/db/migrations , e com as seguintes DDLs:
- V1__Create_Cliente_Table.sql
- V1_1__Create_Colaborador_Table.sql
- V1_2__Create_Servico_Table.sql
- V1_3__Create_Categoria_Table.sql
- V1_4__Create_Pagamento_Table.sql
O acesso aos métodos da API foram realizados através do framework swagger no navegador web, através do endereço web : http://localhost:8080/swagger-ui/index.html
- GET: /api/v1/cliente
- GET /api/v1/cliente/all
- PUT: /api/v1/cliente
- POST: /api/v1/cliente
- DELETE: /api/v1/cliente/{id}
- GET: /api/v1/servico
- GET /api/v1/servico/all
- PUT: /api/v1/servico
- POST: /api/v1/servico
- DELETE: /api/v1/servico/{id}
- GET: /api/v1/colaborador
- GET /api/v1/colaborador/all
- PUT: /api/v1/colaborador
- POST: /api/v1/colaborador
- DELETE: /api/v1/colaborador/{id}
- GET: /api/v1/categoria
- GET /api/v1/categoria/all
- PUT: /api/v1/categoria
- POST: /api/v1/categoria
- DELETE: /api/v1/categoria/{id}
- GET: /api/v1/pagamento
- GET /api/v1/pagamento/all
- PUT: /api/v1/pagamento
- POST: /api/v1/pagamento
- DELETE: /api/v1/pagamento/{id}
O arquivo de configuração do banco de dados MySQL estão em src/main/resources/applications.properties, neste arquivo estão as credencias de acesso ao SGBD e a configuração de migration do flyway.