我正在使用 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;
代替?
我找到了一个可能的解决方案 here在 SO 中,但这需要在 pom.xml 中进行一些配置。但是,我使用的在线编辑器只提供了为不同平台生成代码的选项,但不接受 pom 文件。
最佳答案
OpenAPI(版本 3)支持以下数据类型:
OpenAPI v3 中不支持集合数据类型。最接近的数据类型是属性 uniqueItems 设置为 true 的数组(正如您所建议的)。但它仍然是一个对其项目的唯一性有限制的数组,而不是一个集合。
因此,您的请求无法在 OpenAPI 级别得到解决。
但是,代码生成器级别可能有一个选项,您需要将问题解决到您选择的代码生成器。
https://stackoverflow.com/questions/72900026/