# 1. Objeto aninhado

Requisição Post

```json
POST http://localhost:8080/people
{
  "name": "Nova Pessoa",
  "salary": 8000.0,
  "department": {
  "id": 1
  }
}
```

1. Criar um DTO para recebermos os dados e instanciar um objeto Java.

Esse DTO criado, precisa ter os dados da pessoa + o seu departamento, exatamente igual na imagem acima.

**Como não podemos dentro de um DTO usar uma entidade**. Precisaremos também criar um DepartmentDTO.

2. Criar um service para realizar a operação

Criaremos o Service juntamente com o método Insert recebendo o DTO criado.

* Importar o repository.
* Criaremos uma entity Person vazia.
* Copiaremos os dados do DTO para a nossa entidade Person.

Para colocar o ID do department dentro da Entity, precisa instanciar um departament para puxar os dados do dto.

Por fim, precisamos converter de Entity para DTO.

Para isso é só nos DTOS, criar um construtor apto a receber um Person. Já no DepartmentDto, ele precisa de um construtor para receber um Department.&#x20;

Como abaixo. A diferença é que aqui é um Product para ProductDTO.

```java
public ProductDto(Product entity) {
    id = entity.getId();
    name = entity.getName();
    description = entity.getDescription();
    price = entity.getPrice();
    imgUrl = entity.getImgUrl();
}
```

3. O terceiro passo é criar um controller

Injetaremos o service e colocaremos na classe o método insert, passando os parâmetros juntamente com a lógica correta.

A lógica é a de sempre... ResponseEntity + URI. (Qualquer coisa ver o video na pt2).<br>

## Teste no Postman

Aqui é só dar o Post no HTTP acima, juntamente com os pârametros JSON. Ao dar send, deve funcionar.

<br>

\
\ <br>
