swagger 在OpenAPI中指定集合

tzdcorbm  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(131)

我正在使用OpenAPI / Swagger来指定我的API。
有一件事我不知道是如何指定一个集。
我使用的是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文件。

pjngdqdw

pjngdqdw1#

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

  • 号码
  • 整数
  • 布尔的
  • 数组
  • 目标物

在OpenAPI v3中不支持set数据类型。最接近的数据类型是属性 uniqueItems 设置为true的数组(如您所建议的)。但它仍然是一个对其项的唯一性有约束的数组,而不是一个集合。
因此,您的请求无法在OpenAPI级别上得到解决。
但是,在代码生成器级别上可能有一个选项,您需要将该问题提交给您选择的代码生成器。

相关问题