1
resposta

não estou conseguindo encontra o porque do erro 400

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

o erro acima esta acorrendo com o meu código, mas peguei o código da aula para testar e verficar se era algo com o postam mas estava funcionando de boa, então dei ctrl + c e ctrl + v no que foi implementado em services, controller, progran e dto. E por incrivel que pareça deu certo então o erro não esta na escrtia do códgio porém eu não estou conseguindo localizar a raiz do problema tmb... Alguem tem alguma ideia do eu posso fazer para concertar?

1 resposta

Olá, Rafael.

Tudo bem?

Pelo erro que você está recebendo, parece que o problema está relacionado com a propriedade RePassword no seu JSON. O erro indica que não consegue encontrar uma propriedade chamada PassWord, o que sugere que há um problema de correspondência entre o JSON enviado e o DTO esperado pelo seu endpoint.

Para resolver esse problema, verifique os seguintes pontos:

  1. Verifique a Classe DTO: Certifique-se de que a classe CreateUsuarioDto possui as propriedades Username, DataNascimento, Password e RePassword corretamente definidas.
public class CreateUsuarioDto
{
    [Required]
    public string Username { get; set; }
    
    [Required]
    public DateTime DataNascimento { get; set; }
    
    [Required]
    public string Password { get; set; }
    
    [Required]
    public string RePassword { get; set; }
}
  1. Verifique a Capitalização: No JSON enviado, as propriedades devem corresponder exatamente aos nomes definidos no DTO, incluindo a capitalização. No seu JSON, você tem PassWord em vez de Password. Corrija para:
{
    "Username": "romulo",
    "DataNascimento": "1900-01-01",
    "Password": "Senha123@",
    "RePassword": "Senha123@"
}
  1. Verifique o Método do Controller: Certifique-se de que o método CadastraUsuario no seu UsuarioController está recebendo o DTO correto.
[HttpPost("cadastro")]
public async Task<IActionResult> CadastraUsuario(CreateUsuarioDto dto)
{
    await _usuarioService.CadastraUsuario(dto);
    return Ok("Usuário cadastrado!");
}
  1. Verifique a Configuração do ModelState: Certifique-se de que o ModelState está sendo validado corretamente no método do controller, caso contrário, você pode não estar recebendo as mensagens de erro apropriadas.
[HttpPost("cadastro")]
public async Task<IActionResult> CadastraUsuario(CreateUsuarioDto dto)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    await _usuarioService.CadastraUsuario(dto);
    return Ok("Usuário cadastrado!");
}

Depois de verificar e corrigir esses pontos, tente enviar o JSON novamente pelo Postman. Isso deve resolver o problema do erro 400 relacionado à validação das propriedades.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.