Aplicativo Spring Boot Use @valid para validar a solicitação de API

Usar @valid pode facilitar a validação de sua solicitação.

Quando desenvolvemos a API restante, acreditamos que todos precisam verificar a legitimidade dos parâmetros de entrada da interface. Alguns iniciantes podem usar muitas expressões condicionais if-else para verificação. Tome um novo registro de usuário como exemplo:

Esse código pode atingir o objetivo de verificação de parâmetros, mas leitores cuidadosos podem ter descoberto que, se quisermos escrever muitas interfaces como essa, precisamos escrever muito código de verificação repetidamente, o que obviamente não é elegante. Podemos usar a anotação @valid para nos ajudar a simplificar a lógica de validação.

Usando @Valid

O hibernate-validatorimplementa @Valid. spring-boot-start-webjá contém esta biblioteca, portanto não há necessidade de introduzir dependências. Se for um projeto não-spring, duas dependências do Maven precisam ser usadas.

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
 
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.14.Final</version>
</dependency>

  • A propriedade de restrição @Null só pode ser nula.
  • A propriedade restrita @NotNull não é anulável.
  • A propriedade de restrição @Max(value) deve ser um número não maior que o valor especificado.
  • A propriedade de restrição @Min(value) deve ser um número não inferior ao valor especificado.
  • A propriedade de restrição @Digits(integer, fraction) deve ser decimal, e o número de dígitos na parte inteira não pode exceder integer e o número de dígitos na parte decimal não pode exceder fração.
  • A propriedade de restrição @Past deve ser uma data passada.
  • @Future restringir propriedade deve ser uma data futura.
  • A propriedade de restrição @Pattern(value) deve estar em conformidade com a expressão regular especificada.
  • @Size(max, min) o comprimento do caractere limite deve estar entre min e Max.
  • O valor da propriedade válida @NotEmpty não é anulável, o comprimento da string não é 0 e o tamanho da coleção não é 0.
  • O valor válido da propriedade @NotBlank não é nulo e, após trim(), o comprimento não é 0.
  • @Email Verifique se o valor do atributo é uma string em formato de email.

Veja, é tão simples. Algumas anotações completam a lógica de verificação complexa. Quando a verificação do parâmetro de destino falhar, o sistema lançará uma MethodArgumentNotValidExceptionexceção. Então, podemos usar @ExceptionHandlermanipular os resultados da verificação.

Use @Exceptionhandler para manipular uniformemente os resultados da validação

Uma classe de manipulador de exceção global é criada aqui. Usamos o método parameterExceptionHandler para capturar MethodArgumentNotValidExceptionexceções e, finalmente, tratamos uniformemente os resultados das falhas de validação. Este método receberá a mensagem de erro após a validação de cada campo falhar. Aqui, eu uso a ErrorResultclasse para retornar a mensagem de erro. Quando iniciamos o serviço, usamos o carteiro para iniciar uma solicitação de postagem(http://localhost:8080/user/register), não inserimos nenhum parâmetro e retornamos o resultado:

{  
    "code": -1,  
    "msg": "the user phone is illegal."  
}

Quatro truques para eliminar expressões condicionais complexas Dez truques de otimização para tornar seu aplicativo Java mais rápido

Suggested posts

Por que alguns freelancers estão fingindo suas vidas

Por que alguns freelancers estão fingindo suas vidas

Estive recentemente no Linkedin, a maior rede social profissional do mundo, e encontrei postagens de designers freelancers que sigo que me chamaram a atenção. Todos postaram fotos de aviões, na praia com seus laptops, de piscinas e escritórios com vistas incríveis.

A arte é sempre apolítica?

A arte é sempre apolítica?

Ontem, fechamos a porta do Festival Eurovisão da Canção deste ano com uma brilhante e caótica grand finale, onde a cantora sueca Loreen levou para casa o troféu, tornando-se a primeira mulher a vencer duas vezes e trazendo a coroa de volta para a Suécia 50 anos depois que o ABBA venceu a competição com “Waterloo”. Eles se tornaram um dos maiores artistas do cânone da música pop.

Related posts

O desafio de leitura Goodreads é tóxico

O desafio de leitura Goodreads é tóxico

A coceira na minha mão aumentou enquanto eu negociava com o livreiro local por mais um livro. Este livro, como o resto que comprei recentemente, encontraria seu trono na minha pilha 'To Be Read' (TBR); e ainda assim, eu comprei.

Aprender na semana de trabalho é mais importante do que você pensa

Aprender na semana de trabalho é mais importante do que você pensa

Muitas vezes nos encontramos lutando para implementar o que sabemos que é bom para nós. Desde dizer a um outro significativo que o amamos até lembrar de falar como um pirata, sempre haverá quem afirme que um dia, semana ou mês de eventos não é necessário porque eles já estão fazendo essas coisas.

A performance solo da garota ruiva

A pedido de Hayden, Katie se filma se masturbando.

A performance solo da garota ruiva

Passava da meia-noite quando Hayden levou Katie de volta ao dormitório da faculdade depois da noite juntos. Ela tinha aula cedo de manhã e não tinha outra troca de roupa depois de ter ficado com ele na noite anterior.

Conversas Perigosas

Conversas Perigosas

Se quisermos continuar a prosperar neste planeta, teremos que ter conversas perigosas. Aqueles que desafiam o que temos feito, o que estamos fazendo e o que estamos determinados a continuar fazendo (ou planejamos fazer).