swagger-api / swagger-api/swagger-codegen
[Spring] Codegen 2.2.2 does not render objects comprised by allOf and containing additionalProperties:
Personne n'a encore pris cette issue.
- Langage dominant
- Mustache
- Étoiles
- 17.8k
- Forks
- 6k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Description
When running Codegen 2.2.2 to render Spring objects, when the object has a definition using the allOf schema attribute and also the additionalProperties attribute, the rendered Java object contains no members at all.
Swagger-codegen version
swagger-codegen-cli-2.2.2.jar
Swagger declaration file content or url
DynamicAccountModel:
allOf:
- properties:
accountId:
type: string
description: Account ID
- additionalProperties:
type: string
Command line used for generation
java -jar ../tools/swagger-codegen-cli-2.2.2.jar generate -i allof-no-render.yaml -l spring -o target
Steps to Reproduce
Execute above command.
Note that the class contains neither derives from HashMap (due to having the additionalParameters attribute) nor contains an accountId member.
package com.foo.bar;
import java.util.Objects;
import java.io.Serializable;
import javax.validation.constraints.*;
/**
* DynamicAccountModel
*/
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2017-03-30T07:57:06.421-04:00")
public class DynamicAccountModel implements Serializable {
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
return true;
}
@Override
public int hashCode() {
return Objects.hash();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class DynamicAccountModel {\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter la commande swagger-codegen-cli-2.2.2 documentée avec le YAML allOf/additionalProperties fourni et examinez la classe Java Spring générée. Suivez le chemin du générateur Spring responsable de ce modèle ; le travail est considéré comme terminé lorsque la classe inclut accountId et gère les propriétés supplémentaires comme décrit, au lieu de générer un objet vide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, spring
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100