如何在openapi-generator中定义List<Map<Integer,Set<String>>>属性?



i定义OpenAPI 3.0文档,并使用OpenApi-generator-cli-3.3.4.jar生成Java代码(DTO(。但是我无法解决这种情况: List<Map<Integer, Set<String>>>

  1. Map<Integer, String>中:

    • 我知道我可以使用架构对象:附加Properties 定义地图类型。

    • OpenAPI规范附加Properties :值可以是布尔值或对象。内联或引用模式必须是模式对象,而不是标准的JSON模式。

    • 上面的内容,我无法将地图密钥设置为整数,对吗?对此问题有任何建议吗?

  2. set<String>set<List<String>>问题中:我必须尝试一些努力:

testing1 :设置" 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 :不设置为list

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

testing2 :编辑属性测试类型

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

warn

[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;
  }

testing3 :编辑属性测试类型

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

warn

[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 Set类型,但不知道设置Generic

      /**
   * Get test
   * @return test
  **/
  @ApiModelProperty(value = "")
  public Set getTest() {
    return test;
  }
  public void setTest(Set test) {
    this.test = test;
  }
  • 有任何建议在Openapi-Generator中修复Map<Integer, String>和Java设置通用问题?

for OpenAPI版本3.0.3 Java Generic Set的示例Works

yaml定义:

mapOfSets:
      type: object
      additionalProperties:
        type: setOfStrings

maven pom.xml openapi-generator-maven-plugin的配置:

<typeMappings>
  <typeMapping>setOfStrings=Set&lt;String&gt;</typeMapping>
</typeMappings>
<importMappings>
  <importMapping>Set&lt;String&gt;=java.util.Set</importMapping>
</importMappings>

生成的Java代码:

private Map<String, Set<String>> mapOfSets = null;

there setofstrings 是一种自定义的OpenAPI类型,它具有pom.xml中定义的自定义映射,并将生成set&lt; string&gt;Java类型。

最新更新