2017-07-11 2 views
2

Je crée une API REST et je voudrais ajouter à la génération de classe l'annotation Jackson pour ignorer les champs nuls, donc je voudrais ajouter cette annotation onfly pour certaines classes, pas pour le projet de trou.Swagger codegen ignore les champs null pour les classes POJO

Je sais que cela pourrait être acomplished en ajoutant application.properties la ligne suivante:

spring.jackson.default-property-inclusion=non_null 

Mais cela est pour le projet entier.

Je vois qu'il ya des fichiers « .mustache »

- api.mustache 
- apiController.mustache 

Je supose que je dois ajouter un code dans l'un de celui-ci, ou devrais-je insérer un code dans application.yml? J'utilise aussi Spring Boot avec Swagger-codgen.

Merci d'avance et bonne journée!

+0

Il existe un problème GitHub ouvert sur ce sujet. Support/upvote PLS https://github.com/swagger-api/swagger-codegen/issues/6488 –

Répondre

2

Ok, après quelques heures de recherche, j'ai trouvé que parce que j'utilise Swagger-codegen, je dois chercher dans https://github.com/swagger-api/swagger-codegen pour toutes les réponses concernant Swagger-Codegen. Voici tous les modèles et je trouve que je dois ajouter à mon projet, les deux fichiers suivants

  • pojo.mustache
  • xmlAnnotation.mustache

Le chemin où vous pouvez trouver les fichiers ci-dessus est

swagger-codegen/modules/swagger-codegen/src/main/resources/JavaSpring/ 

Plus que cela, ces fichiers sont des modèles simples pour générer vos classes Pojo, vous devez donc ajouter l'annotation @JsonInclude(JsonInclude.Include.NON_NULL) dans le POJO. fichier moustache, au-dessus de la ligne avec public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}}... afin d'être inséré lorsque vous générez des classes pojo.

Et fait, reconstruisez votre projet! :)

+0

Je serais curieux de savoir si swagger supporte cela sans avoir besoin d'éditer son code. – Doug