swagger-api / swagger-api/swagger-codegen
[Spring] Codegen 2.2.2 does not render objects comprised by allOf and containing additionalProperties:
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Mustache
- Estrellas
- 17.8k
- Forks
- 6k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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 ");
}
}
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando el comando documentado swagger-codegen-cli-2.2.2 con el YAML allOf/additionalProperties proporcionado e inspecciona la clase Java de Spring generada. Sigue la ruta del generador de Spring responsable de este modelo; se considera terminado cuando la clase incluye accountId y gestiona las propiedades adicionales como se describe, en lugar de generar un objeto vacío.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, spring
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100