gpt4 book ai didi

rest - 如何将数组或枚举中的枚举值定义为映射属性中的键?

转载 作者:行者123 更新时间:2023-12-01 04:49:18 25 4
gpt4 key购买 nike

我正在使用 swagger-codegen-maven-plugin (2.2.1) 从 YML 配置生成 java 和 typescript 代码类文件。我有两个问题。

如何在 YML 中定义枚举属性数组?

如何在 YML 中将 map 属性枚举定义为键,将 bool 值定义为值?

让我知道这可能还是有任何解决方法?目前,我在 java 和 typescrtipt 中定义了枚举类并将其作为字符串传递。谢谢。

DataInfo:
type: object
properties:
enumTest: -- works fine
type: string
enum:
- one
- two
enumTestArray: --failing to generate code
type: array
items:
type: string
enum:
- one
-two
testMap: -- works fines generate Map<String, Boolean> and { [key: string]: boolean; };
type: object
additionalProperties:
type: boolean

swagger enum doc

Map Property

更新:

与第一个问题相关:定义枚举属性数组。 swagger-codegen-maven-plugin 生成无效的 java 类文件,如下所示: 生成 <、> 和 "字符的外观和问题。

@XmlType(name="List&lt;EnumTestArrayEnum&gt;")
@XmlEnum
public enum List&lt;EnumTestArrayEnum&gt; {

ONE(List&lt;String&gt;.valueOf("&quot;one&quot;")), TWO(List&lt;String&gt;.valueOf("&quot;two&quot;"));


private List&lt;String&gt; value;

List&lt;EnumTestArrayEnum&gt; (List&lt;String&gt; v) {
value = v;
}

public String value() {
return value;
}

public static List&lt;EnumTestArrayEnum&gt; fromValue(String v) {
return valueOf(v);
}
}

最佳答案

How to define array of enum property in YML?



您的 enumTestArray示例几乎是正确的——您只需要在“-”和“两个”之间留一个空格即可使 YAML 有效:

           enumTestArray:
type: array
items:
type: string
enum:
- one
- two # <----

How to define map property enum as key and boolean as value in YML?



在 OpenAPI/Swagger 中,映射键是任意字符串,它是 not possible to limit the key names or format .您可以在 description 中口头记录 key 格式。 .

或者,由于键是已知的(仅限于某些已知的枚举),您可以将所有可能的键定义为可选属性。不优雅,但它可能适合你。

              testMap:
type: object
properties:
one:
type: boolean
two:
type: boolean
...

还有建议添加 support for patternProperties ,这将允许将键名限制为正则表达式。

关于rest - 如何将数组或枚举中的枚举值定义为映射属性中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46638920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com