Swagger-codegen: codegen não leva em consideração os valores padrão

Criado em 14 jan. 2016  ·  3Comentários  ·  Fonte: swagger-api/swagger-codegen

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,

Nodejs help wanted

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.

Todos 3 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações