6

OpenAPI 3.0 ドキュメントを定義し、openapi-generator-cli-3.3.4.jar を使用して Java コード (DTO) を生成します。しかし、私はこのケースを解決できません: List<Map<Integer, Set<String>>>.

  1. 問題Map<Integer, String>:

    • 私が知っているように、スキーマ オブジェクトを使用できます: additionalPropertiesはマップ タイプを定義します。

    • OpenAPI 仕様additionalProperties : 値はブール値またはオブジェクトにすることができます。インラインまたは参照されるスキーマは、標準の JSON スキーマではなく、スキーマ オブジェクトでなければなりません。

    • 上記によると、Map キーを整数に設定することはできませんよね? この問題について何か提案はありますか?

  2. set<String>または問題:私はいくつset<List<String>>かの努力をしなければなりません:

Testing1 : set "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 の生成: Set is List ではありません

     /**
   * 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;
  }

Testing3 : プロパティ テスト タイプを編集して設定します

    "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 Set 型を持っていますが、ジェネリックを設定する考えはありません

      /**
   * Get test
   * @return test
  **/
  @ApiModelProperty(value = "")
  public Set getTest() {
    return test;
  }
  public void setTest(Set test) {
    this.test = test;
  }
  • Map<Integer, String>openapi-generator で修正および Java Set の一般的な問題を解決するための提案はありますか?
4

1 に答える 1