swagger-api / swagger-api/swagger-codegen
[Spring] Codegen 2.2.2 does not render objects comprised by allOf and containing additionalProperties:
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Mustache
- Sterne
- 17.8k
- Forks
- 6k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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 ");
}
}
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Ausführung des dokumentierten swagger-codegen-cli-2.2.2-Befehls mit dem bereitgestellten allOf/additionalProperties-YAML und untersuche die generierte Spring-Java-Klasse. Verfolge den für dieses Modell verantwortlichen Spring-Generatorpfad; als erledigt gilt die Aufgabe, wenn die Klasse accountId enthält und die zusätzlichen Eigenschaften wie beschrieben verarbeitet, anstatt ein leeres Objekt zu generieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java, spring
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100