Apprenez à créer un validateur personnalisé dans Spring Boot pour garantir la conformité des données en API. Dans cet article, découvrez les étapes pour mettre un place un validateur efficace et réutilisable.
Par Adrien Pereira
Intro
Créer un validateur personnalisé dans Spring Boot permet d'assurer que les données envoyées à votre API respectent des règles spécifiques. Dans cet article, nous allons voir les différentes étapes pour mettre en place un validateur efficace et réutilisable.
Comment créer son propre validateur ?
Vous pouvez vérifier un DTO en entrée avec certains validateurs par Jakarta.
Comme par exemple : Positive, NotNull.
Mais parfois, vous devez créer votre propre validateur.
Par exemple, j’ai une API pour enregistrer et obtenir une liste de films. Cependant, je ne peux pas sauvegarder un film avec un pays autre que la France ou les Etats-Unis.
L’annotation IsGoodCountry n’existe pas, vous devez donc en faire une.
Pour cela, vous avez deux possibilités :
Vous n’avez besoin de cette vérification que dans une seule classe, vous pouvez alors créer une méthode dans isFranceOrUsa avec l’annotation assertTrue :
@Data@AllArgsConstructor@NoArgsConstructorpublicclassMoviePresenterDto {
private String name;
private String comment;
private Instant creationDate;
private String category;
private String country;
private Float price;
@AssertTrue(message = "Country must be France or Usa.")privatebooleanisFranceOrIsUsa(){
return country == null ||
"France".equalsIgnoreCase(country) || "USA".equalsIgnoreCase(country);
}
}
Si vous devez utiliser cette validation dans d’autres classes, vous pouvez rendre une annotation réutilisable :
Faite une annotation
@Documented@Constraint(validatedBy = ...)@Target({ ElementType.METHOD, ElementType.FIELD })@Retention(RetentionPolicy.RUNTIME)public@interface IsGoodCountryConstraint {
String message()default"Country must be France or Usa.";
Class<?> groups() default {};
Class<? extendsPayload>[] payload() default {};
}
Ecrivez une classe de validation : (elle est liée à l’annotation constraint)
Apprenez à créer un validateur personnalisé dans Spring Boot pour garantir la conformité des données en API. Dans cet article, découvrez les étapes pour mettre un place un validateur efficace et réutilisable.
Testcontainers est une bibliothèque Java permettant d'exécuter des conteneurs Docker pour les tests d'intégration. Son principal avantage est d'offrir un environnement de test isolé, reproductible et proche des conditions réelles de production. Dans cet article, nous allons explorer deux cas d'usage concrets de Testcontainers pour une application Spring Boot.
Boostez la sécurité et la lisibilité de vos endpoints API avec NestJS ! Découvrez comment utiliser les Décorateurs et Guards pour simplifier la gestion des autorisations et simplifier votre code.