Salut,
Voici ma description fanfaronne:
inline_response_200:
properties:
surname:
type: "integer"
default: 1
format: "int32"
name:
type: "string"
default: "lazy"
enum:
- clueless
- lazy
- adventurous
- aggressive
Et c'est ce que nous recevons dans l'application nodejs générée:
exports.newCustomer = function(request) {
var examples = {};
examples['application/json'] = {
"name" : "aeiou",
"surname" : 123
};
Est-ce normal que les valeurs par défaut ne soient pas prises en compte? la chaîne est la même à chaque fois, le nombre également le même. Est-ce possible de le faire fonctionner?
Comme nous ne voulons pas utiliser de examples
codés en dur.
Salutations,
Nous pouvons utiliser la balise moustache {{{defaultValue}}} pour résoudre ce problème. Voici un exemple: https://github.com/swagger-api/swagger-codegen/blob/3a2ad9e2e446f43a6cd71a0e03e3a88828311480/modules/swagger-codegen/src/main/resources/python/model.mustache#L52
Est-ce quelque chose que vous avez le cycle de contribuer?
Voici les directives de contribution: https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md
Il semble que ce soit également un problème pour la génération de code Java / Android, je génère sur la base de ce fichier yml pour mon fichier class_properties
.
class_properties:
type: object
properties:
class_id:
type: object
properties:
name:
type: string
default: "Class ID"
value:
type: string
class_title:
type: object
properties:
name:
type: string
default: "Class Title"
value:
type: string
class_instructor_name:
type: object
properties:
name:
type: string
default: "Class Instructor Name"
value:
type: string
class_air_date:
type: object
properties:
name:
type: string
default: "Class Air Date"
value:
type: string
format: datestring
Cependant, lorsque je génère le modèle, aucun des champs par défaut n'est rempli
@ApiModel(description = "")
public class ClassProperties {
@SerializedName("class_id")
private ClassPropertiesClassId classId = null;
@SerializedName("class_title")
private ClassPropertiesClassTitle classTitle = null;
@SerializedName("class_instructor_name")
private ClassPropertiesClassInstructorName classInstructorName = null;
@SerializedName("class_air_date")
private ClassPropertiesClassAirDate classAirDate = null;
/**
**/
@ApiModelProperty(value = "")
public ClassPropertiesClassId getClassId() {
return classId;
}
public void setClassId(ClassPropertiesClassId classId) {
this.classId = classId;
}
/**
**/
@ApiModelProperty(value = "")
public ClassPropertiesClassTitle getClassTitle() {
return classTitle;
}
public void setClassTitle(ClassPropertiesClassTitle classTitle) {
this.classTitle = classTitle;
}
/**
**/
@ApiModelProperty(value = "")
public ClassPropertiesClassInstructorName getClassInstructorName() {
return classInstructorName;
}
public void setClassInstructorName(ClassPropertiesClassInstructorName classInstructorName) {
this.classInstructorName = classInstructorName;
}
/**
**/
@ApiModelProperty(value = "")
public ClassPropertiesClassAirDate getClassAirDate() {
return classAirDate;
}
public void setClassAirDate(ClassPropertiesClassAirDate classAirDate) {
this.classAirDate = classAirDate;
}
<strong i="10">@Override</strong>
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ClassProperties classProperties = (ClassProperties) o;
return (this.classId == null ? classProperties.classId == null : this.classId.equals(classProperties.classId)) &&
(this.classTitle == null ? classProperties.classTitle == null : this.classTitle.equals(classProperties.classTitle)) &&
(this.classInstructorName == null ? classProperties.classInstructorName == null : this.classInstructorName.equals(classProperties.classInstructorName)) &&
(this.classAirDate == null ? classProperties.classAirDate == null : this.classAirDate.equals(classProperties.classAirDate));
}
<strong i="11">@Override</strong>
public int hashCode() {
int result = 17;
result = 31 * result + (this.classId == null ? 0: this.classId.hashCode());
result = 31 * result + (this.classTitle == null ? 0: this.classTitle.hashCode());
result = 31 * result + (this.classInstructorName == null ? 0: this.classInstructorName.hashCode());
result = 31 * result + (this.classAirDate == null ? 0: this.classAirDate.hashCode());
return result;
}
<strong i="12">@Override</strong>
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class ClassProperties {\n");
sb.append(" classId: ").append(classId).append("\n");
sb.append(" classTitle: ").append(classTitle).append("\n");
sb.append(" classInstructorName: ").append(classInstructorName).append("\n");
sb.append(" classAirDate: ").append(classAirDate).append("\n");
sb.append("}\n");
return sb.toString();
}
}
Est-ce également un problème connu?
C'est plus de 2 ans - quelqu'un a-t-il trouvé un moyen de contourner ce problème pour fournir correctement les valeurs par défaut? Nous essayons d'annoter nos POJO pour en tenir compte.
Commentaire le plus utile
C'est plus de 2 ans - quelqu'un a-t-il trouvé un moyen de contourner ce problème pour fournir correctement les valeurs par défaut? Nous essayons d'annoter nos POJO pour en tenir compte.