Oi,
Aqui está minha descrição de arrogância:
inline_response_200:
properties:
surname:
type: "integer"
default: 1
format: "int32"
name:
type: "string"
default: "lazy"
enum:
- clueless
- lazy
- adventurous
- aggressive
E é isso que recebemos no aplicativo nodejs gerado:
exports.newCustomer = function(request) {
var examples = {};
examples['application/json'] = {
"name" : "aeiou",
"surname" : 123
};
Tudo bem, os valores padrão não são levados em consideração? string é sempre o mesmo, o número também é o mesmo. Isso é possível fazer funcionar?
Como não queremos usar examples
codificados.
Cumprimentos,
Podemos usar a tag de bigode {{{defaultValue}}} para corrigi-lo. Aqui está um exemplo: https://github.com/swagger-api/swagger-codegen/blob/3a2ad9e2e446f43a6cd71a0e03e3a88828311480/modules/swagger-codegen/src/main/resources/python/model.mustache#L52
É algo que você tem ciclo para contribuir?
Aqui estão as diretrizes de contribuição: https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md
Parece que isso também é um problema para a geração de código Java / Android, estou gerando com base neste arquivo yml para meu arquivo 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
No entanto, quando eu gerar o modelo, nenhum dos campos padrão é preenchido
@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();
}
}
Este também é um problema conhecido?
Isso tem mais de 2 anos - alguém encontrou uma maneira de contornar isso para fornecer os valores padrão corretamente? Estamos tentando anotar nossos POJOs para levar isso em consideração.
Comentários muito úteis
Isso tem mais de 2 anos - alguém encontrou uma maneira de contornar isso para fornecer os valores padrão corretamente? Estamos tentando anotar nossos POJOs para levar isso em consideração.