Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

dadosEndereco=null

Boa noite. Revisei as classes criadas, e o json no Insonmia, porém o retorno apresenta: dadosEndereco=null.

Minhas classes estão assim:

MedicoController

package med.voll.api.controller;

import med.voll.api.medico.DadosCadastroMedico;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("medicos")
public class MedicoController {

    @PostMapping
    public void cadastrar(@RequestBody DadosCadastroMedico dados){

        System.out.println(dados);

    }
}

DadosCadastroMedico

package med.voll.api.medico;


import med.voll.api.endereco.DadosEndereco;

public record DadosCadastroMedico(String nome, String email, String crm, Especialidade especialidade, DadosEndereco dadosEndereco ) {
}

package med.voll.api.endereco;



public record DadosEndereco(String logradouro, String bairro, String cep, String cidade, String uf, String complemento, String numero) {
}

Especialidade

package med.voll.api.medico;

public enum Especialidade {


    ORTOPEDIA,
    CARDIOLOGIA,
    GINECOLOGIA,
    DERMATOLOGIA;

}


No Insomnia está assim

{
"nome": "Gustavo Dantas",
"email": "gustavo.dantas@voll.med",
"crm": "123456",
"especialidade": "ORTOPEDIA",
"endereco": {
    "logradouro": "rua 1",
    "bairro": "bairro",
    "cep": "72008001",
    "cidade": "Brasilia",
    "uf": "DF",
        "numero": "1"
    }
}

Aqui está o retorno

DadosCadastroMedico[nome=Gustavo Dantas, email=gustavo.dantas@voll.med, crm=123456, especialidade=ORTOPEDIA, dadosEndereco=null]

O que estou fazendo de errado?

2 respostas
solução!

Oi!

No seu json enviado você está enviando o campo com o nome endereco, mas no Record no java o atributo se chama dadosEndereco e por isso está chegando null.

Altere seu record para:

public record DadosCadastroMedico(String nome, String email, String crm, Especialidade especialidade, DadosEndereco endereco ) {
}

Perfeito professor. Muito obrigado.