【问题标题】:Specify a Set in OpenAPI在 OpenAPI 中指定一个 Set
【发布时间】:2022-07-07 23:45:43
【问题描述】:

我正在使用 OpenAPI / Swagger 来指定我的 API。

我不知道的一件事是如何指定一个 Set。

我正在使用https://editor.swagger.io/ 并输入了整个 API。对于我想指定为 Set 的属性,我写了以下内容:

   myProperty:
      uniqueItems: true
      type: array
      description: some description
      items:
        type: string

我会猜到 uniqueItems 可以解决问题并生成一个 Set,但事实并非如此。而是生成以下代码:

@JsonProperty("myProperty")
private List<String> myProperty = null;

有没有办法生成类似的东西

@JsonProperty("myProperty")
private Set<String> myProperty = null;

改为?

我在 SO 中找到了一个可能的解决方案here,但这需要在 pom.xml 中进行一些配置。但是,我使用的在线编辑器只给了我为不同平台生成代码的选项,但不接受 pom 文件。

【问题讨论】:

    标签: java swagger openapi


    【解决方案1】:

    OpenAPI(版本 3)支持以下数据类型:

    • 字符串
    • 号码
    • 整数
    • 布尔值
    • 数组
    • 对象

    OpenAPI v3 中不支持集合数据类型。最接近的数据类型是属性 uniqueItems 设置为 true 的数组(如您所建议的那样)。但它仍然是一个限制其项的唯一性的数组,而不是一个集合。

    因此,您的请求无法在 OpenAPI 级别解决。

    但是,代码生成器级别可能有一个选项,您需要将问题提交给您选择的代码生成器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-31
      • 2019-11-15
      • 1970-01-01
      • 2022-01-17
      • 2021-12-22
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多