https://github.com/alissonwenceslau/camadas-orm-dto
Padrão de camadas com ORM & DTO
https://github.com/alissonwenceslau/camadas-orm-dto
data-transfer-object dto-pattern layered-architecture orm-framework spring-web springboot springdata-jpa
Last synced: about 1 month ago
JSON representation
Padrão de camadas com ORM & DTO
- Host: GitHub
- URL: https://github.com/alissonwenceslau/camadas-orm-dto
- Owner: AlissonWenceslau
- Created: 2023-01-07T02:52:48.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-07T16:25:39.000Z (over 3 years ago)
- Last Synced: 2025-01-22T05:15:03.864Z (over 1 year ago)
- Topics: data-transfer-object, dto-pattern, layered-architecture, orm-framework, spring-web, springboot, springdata-jpa
- Language: Java
- Homepage:
- Size: 361 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Padrão de camadas com ORM & DTO
Este documento refere-se a um simples projeto de API desenvolvido em **spring** para treinar a habilidades de trabalhar com **DTO** utilizando padrão de camadas, sendo a camada mais em baixo de **repositórios**, a segunda camada de **serviços** e a terceira de **controller**, onde os objetos entre a camada de serviço e controlador são repassados por meio de um objeto DTO (Data Transfer Object) no qual tem o objetivo de repassar somente os dados que interessam na chamada da API.
## Design das camadas

## Técnologias empregadas
- Spring Boot
- Spring Data
- Spring Web
## Entidade User
Nessa entidade temos três atributos, ****************************id, nome & password,**************************** porém no consumo da API, retornaremos apenas o **********nome********** do usuários, pois o **password** não pode ser exposto e para isso utilizamos DTO.

## Entidade UserDTO
Para retornar só o atributo **nome** no consumo da API, foi criado dois atributos: **id** e **nome** e três contrutores, conforme abaixo:

1. O motivo pelo qual temos o primeiro construtor vazio, é que quando estamos trabalhando com framework spring, por padrão há a necessidade de ter o construtor default explicitado na classe;
2. O segundo construtor tem por objetivo instanciar um UserDTO;
3. Já o terceito construtor é o que de fato vai converter **User** em **UserDTO** para ser consumido na API.
## Classe UserService
Essa classe tem por objetivo converter uma entidade **User** em **UserDTO** e passar para o controlador o **UserDTO** contendo somente os dados necessários (**nome**) para o consumo da API. logo, criamos o método de procura por id para ser consumido na API.

**Obs**: É possível notar que o tipo de retorno desse método, é um UserDTO e por isso a conversão é feito dentro deste método
## Classe UserController
Essa classe tem por objetivo chamar o método do UserService que por sua vez configura toda a requisição para chamada da API

## Consumo da API
