Swagger-codegen: codegen์€ ๊ธฐ๋ณธ๊ฐ’์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 01์›” 14์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: swagger-api/swagger-codegen

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚ด ํ—ˆํ’ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  inline_response_200:
    properties:
      surname:
        type: "integer"
        default: 1
        format: "int32"
      name:
        type: "string"
        default: "lazy"
        enum:
        - clueless
        - lazy
        - adventurous
        - aggressive

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์ƒ์„ฑ ๋œ nodejs ์•ฑ์—์„œ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

exports.newCustomer = function(request) {

  var examples = {};

  examples['application/json'] = {
  "name" : "aeiou",
  "surname" : 123
};

๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋ณธ๊ฐ’์€ ๊ณ ๋ ค๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋ฌธ์ž์—ด์€ ๋งค๋ฒˆ ๋™์ผํ•˜๊ณ  ์ˆซ์ž๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
ํ•˜๋“œ ์ฝ”๋”ฉ ๋œ examples ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ,

Nodejs help wanted

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ 2 ๋…„์ด ๋„˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๊ธฐ๋ณธ๊ฐ’์„ ์ ์ ˆํ•˜๊ฒŒ ์ œ๊ณต ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด POJO์— ์ฃผ์„์„ ๋‹ฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

{{{defaultValue}}} ์ฝง์ˆ˜์—ผ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ : https://github.com/swagger-api/swagger-codegen/blob/3a2ad9e2e446f43a6cd71a0e03e3a88828311480/modules/swagger-codegen/src/main/resources/python/model.mustache#L52

๊ธฐ์—ฌํ• ์ฃผ๊ธฐ๊ฐ€์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๊ธฐ์—ฌ ๊ฐ€์ด๋“œ ๋ผ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค : https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md

์ด๊ฒƒ์€ Java / Android ์ฝ”๋“œ ์ƒ์„ฑ์—์„œ๋„ ๋ฌธ์ œ๊ฐ€๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.์ด yml ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ 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

ํ•˜์ง€๋งŒ ๋ชจ๋ธ์„ ์ƒ์„ฑ ํ•  ๋•Œ ๊ธฐ๋ณธ ํ•„๋“œ๊ฐ€ ์ฑ„์›Œ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@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();
  }
}

์ด๊ฒƒ์€ ๋˜ํ•œ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ 2 ๋…„์ด ๋„˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๊ธฐ๋ณธ๊ฐ’์„ ์ ์ ˆํ•˜๊ฒŒ ์ œ๊ณต ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด POJO์— ์ฃผ์„์„ ๋‹ฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰