Modes de sortie POJO, Record et Jackson
Les Plain Old Java Objects (POJOs) sont le format de sortie le plus compatible : champs privés avec getters et setters publics, un constructeur sans argument et un constructeur avec tous les arguments. Ce pattern est compris par toutes les bibliothèques de sérialisation Java — Jackson, Gson, Moshi — et tous les frameworks Java.
Les records Java 16+ produisent un code plus concis pour les porteurs de données immuables. Une déclaration de record génère automatiquement le constructeur, les getters (nommés d’après le composant, sans préfixe "get"), equals(), hashCode() et toString(). Les records sont idéaux pour les cas d’utilisation DTO et objet-valeur où l’immuabilité est souhaitée.
Le mode annotation Jackson ajoute @JsonProperty("originalKey") à chaque champ pour que les noms de champs Java en camelCase puissent correspondre aux clés JSON dans n’importe quel style de casse. @JsonIgnoreProperties(ignoreUnknown = true) est placé sur chaque classe pour éviter les échecs de désérialisation quand l’API ajoute de nouveaux champs. La sortie est prête à utiliser avec @RequestBody et RestTemplate de Spring Boot.
Correspondance de types et conventions de nommage
Les chaînes JSON deviennent String, les entiers int (ou Integer pour nullable), les décimaux double (ou Double), les booléens boolean (ou Boolean), les champs null-only Object avec commentaire. Les tableaux deviennent List<T> où T est la classe d’élément inférée. Les objets imbriqués génèrent des classes séparées nommées en PascalCase d’après leur clé.
Les clés JSON sont automatiquement converties en identifiants Java valides : les tirets et espaces sont supprimés, le caractère suivant est mis en majuscule (camelCase). Les clés commençant par des chiffres reçoivent un préfixe underscore. Les mots réservés Java sont échappés avec un suffixe underscore.
La déclaration de package en haut de chaque fichier est par défaut "com.example.model" mais peut être personnalisée. Les imports pour java.util.List et les annotations Jackson sont ajoutés automatiquement selon les besoins.
Intégration Spring Boot et entreprise
Les applications Spring Boot qui consomment des API REST ont besoin de classes de requête et de réponse typées. Collez le contrat JSON de la documentation API, générez des POJOs annotés Jackson et intégrez-les dans votre couche de service.
Les annotations Lombok (@Data, @NoArgsConstructor, @AllArgsConstructor, @Builder) peuvent être ajoutées à la sortie POJO pour éliminer le code boilerplate des getters/setters. Avec Lombok le POJO généré se réduit aux déclarations de champs et aux annotations au niveau de la classe.
Lors de l’intégration avec JPA ou Hibernate, les POJOs générés servent de point de départ pour les classes d’entités. Ajouter @Entity, @Id et @Column par-dessus la sortie générée donne une première ébauche d’entité JPA depuis votre modèle de données JSON.