我正在使用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文件。
1条答案
按热度按时间pjngdqdw1#
OpenAPI(版本3)支持以下数据类型:
在OpenAPI v3中不支持set数据类型。最接近的数据类型是属性 uniqueItems 设置为true的数组(如您所建议的)。但它仍然是一个对其项的唯一性有约束的数组,而不是一个集合。
因此,您的请求无法在OpenAPI级别上得到解决。
但是,在代码生成器级别上可能有一个选项,您需要将该问题提交给您选择的代码生成器。