Executando verificação de segurança...
1

Olá VitorPhantomhive

Existem algumas maneira, uma delas é utilizar os DataAnnotations
ex:

        public class Usuario
        {
            public string Nome { get; set; }
            public string Email { get; set; }
            [Required(ErrorMessage = "CPF é obrigatorio")]
            [StringLength(11, MinimumLength = 11, ErrorMessage = "Cpf deve conter 11 caracteres")]
            public string Cpf { get; set; }
        }
        
        [HttpPost]
        public IActionResult Post(Usuario usuario)
        {
            // o aspnet estará validando automaticamente para você e entregando o resultado no ModelState
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            return Ok(usuario);
        }

Outra maneira bastante usada é com FluentValidation

Carregando publicação patrocinada...
1
1

você diz não ser necessario o if (!ModelState.IsValid)... ?

É possivel e bem simples, apenas adicionando o atributo [ApiController] ele irá fazer essa autovalidação

ex:

[ApiController]
[Route("[controller]")]
public class UsuarioController : ControllerBase
{
    [HttpPost]
    public IActionResult Post(Usuario usuario)
    {
        return Ok(usuario);
    }
1