Как определить список> Собственность в openapi-генераторе? - PullRequest
1 голос
/ 05 июля 2019

Я определяю документы OpenAPI 3.0 и использую openapi-generator-cli-3.3.4.jar для генерации кода Java (DTO). Но я не могу решить этот случай: List<Map<Integer, Set<String>>>.

  1. В Map<Integer, String> выпуск:

    • Как я знаю, я могу использовать объект схемы : дополнительные свойства определить тип карты.

    • Спецификация OpenAPI AdditionalProperties : значение может быть логическим или объектным. НЕОБХОДИМО, чтобы встроенная или ссылочная схема была из объекта схемы и не являлась стандартной схемой JSON.

    • В соответствии с вышеизложенным, я не могу установить ключ карты на целое число, верно? Есть предложения по этому вопросу?

  2. В set<String> или set<List<String>> выпуск: мне нужно попытаться:

Тестирование1 : установить "uniqueItems": true

 {
    "openapi": "3.0",
    "info": {
        "version": "1.0.0",
        "title": "Dr.First Schema",
        "license": {
            "name": "MIT"
        }
    },
    "components": {
        "schemas": {
            "Question": {
                "type": "object",
                "properties": {
                    "test": {
                        "type": "array",
                        "items":{
                            "type":"string"
                        }
                    }
                }
            }
        }
    }
}

Создать Java DTO : не указан в списке

     /**
   * Get test
   * @return test
  **/
  @ApiModelProperty(value = "")
  public List<String> getTest() {
    return test;
  }

  public void setTest(List<String> test) {
    this.test = test;
  }

Testing2 : измените тип теста свойств на Set

    "test": {
       "type": "Set"       
    }

Предупреждать

[main] WARN  o.o.codegen.DefaultCodegen - Unknown type found in the schema: Set
[main] WARN  o.o.codegen.DefaultCodegen - Unknown type found in the schema: Set
[main] WARN  o.o.codegen.DefaultCodegen - Unknown type found in the schema: Set

Генерация Java DTO : Синтаксическая ошибка

   /**
   * Get test
   * @return test
  **/
  @ApiModelProperty(value = "")
  public java.util.* getTest() {
    return test;
  }

  public void setTest(java.util.* test) {
    this.test = test;
  }

Тестирование3 : измените тип теста свойств для установки

    "test": {
       "type": "set"       
    }

Предупреждать

[main] WARN  o.o.codegen.DefaultCodegen - Unknown type found in the schema: set
[main] WARN  o.o.codegen.DefaultCodegen - Unknown type found in the schema: set
[main] WARN  o.o.codegen.DefaultCodegen - Unknown type found in the schema: set

Генерация Java DTO : есть тип набора Java, но нет идеи установить универсальный

      /**
   * Get test
   * @return test
  **/
  @ApiModelProperty(value = "")
  public Set getTest() {
    return test;
  }
  public void setTest(Set test) {
    this.test = test;
  }
  • Есть какие-нибудь предложения по исправлению Map<Integer, String> и java Устанавливаете общую проблему в openapi-generator?
...