Swagger-codegen: codegen ne prend pas en compte les valeurs par défaut

Créé le 14 janv. 2016  ·  3Commentaires  ·  Source: swagger-api/swagger-codegen

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,

Nodejs help wanted

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.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes