Os dados são enviados para API através de uma requisição HTTP. Então é preciso definir o método e a URL da API, além dos dados que serão enviados. Neste caso, os dados estão sendo enviados no corpo da requisição no formato JSON( (JavaScript Object Notation).
Trello: https://trello.com/b/O0lGCsKb/api-voll-med
Figma, Layout da aplicação: https://www.figma.com/file/N4CgpJqsg7gjbKuDmra3EV/Voll.med
Para receber os dados da requisição, primeiro é necessário mapear o controller.
@RestController
@RequestMapping("/medicos")
public class MedicoController {
@PostMapping
public void cadastrar(@RequestBody String json){
System.out.println(json);
}
}
Desse modo, o JSON do corpo da requisição é obtido. Entretanto, os campos do JSON não são recebidos separadamente. Para isso, é preciso criar uma classe que irá receber cada campo do JSON.
Para receber os dados da requisição, será utilizada uma classe DTO, neste caso, um Record.
DTO (Data Transfer Object) é um padrão utilizado para receber e enviar dados. Esse padrão sera utilizado em todas as entradas e saídas de dados da aplicação.
Record é uma representação de um classe imutável, que tem apenas atributos, construtores e métodos de leitura.
Classe DTO, sem utilização de Record:
public final class Telefone {
private final String ddd;
private final String numero;
public Telefone(String ddd, String numero) {
this.ddd = ddd;
this.numero = numero;
}
@Override
public int hashCode() {
return Objects.hash(ddd, numero);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
} else if (!(obj instanceof Telefone)) {
return false;
} else {
Telefone other = (Telefone) obj;
return Objects.equals(ddd, other.ddd)
&& Objects.equals(numero, other.numero);
}
}
public String getDdd() {
return this.ddd;
}
public String getNumero() {
return this.numero;
}
}
Classe DTO com utilização do Record:
public record Telefone(String ddd, String numero){}