为什么 Swagger Codegen 将 ON/OFF 字符串枚举转换为 TRUE/FALSE?
Why does Swagger Codegen convert an ON/OFF string enum to TRUE/FALSE?
我正在使用 Swagger Codegen 3.0.19,也尝试过 OpenAPI Generator 4.0.3。
Java环境:
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
亚军:
java -jar ./libs/openapi-generator-cli-4.3.0.jar generate \
-i pet.yaml \
-g spring \
-o ./OUTPUT/api/
这是我的 OpenAPI 架构:
openapi: "3.0.0"
....
CaptureStatus:
type: object
description: Holds current capture status.
properties:
status:
type: string
enum:
- ON
- OFF
description: Capture status values.
....
输出为:
....
public enum StatusEnum {
TRUE("true"),
FALSE("false");
private String value;
StatusEnum(String value) {
this.value = value;
}
....
为什么 codegen 将 ON/OFF 枚举转换为 TRUE/FALSE?当我使用 Swagger Editor GUI 生成时它不会这样做。
在 YAML 1.1 中,on
、off
、y
、n
、yes
和 no
是 boolean values. This was changed在 YAML 1.2 中,此版本不再将这些值视为布尔值。
看起来 Swagger Codegen 和 OpenAPI Generator 使用 YAML 1.1 解析器。在这种情况下,您需要将 'ON'
和 'OFF'
括在引号中以将它们视为字符串:
enum:
- 'ON'
- 'OFF'
我正在使用 Swagger Codegen 3.0.19,也尝试过 OpenAPI Generator 4.0.3。
Java环境:
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
亚军:
java -jar ./libs/openapi-generator-cli-4.3.0.jar generate \
-i pet.yaml \
-g spring \
-o ./OUTPUT/api/
这是我的 OpenAPI 架构:
openapi: "3.0.0"
....
CaptureStatus:
type: object
description: Holds current capture status.
properties:
status:
type: string
enum:
- ON
- OFF
description: Capture status values.
....
输出为:
....
public enum StatusEnum {
TRUE("true"),
FALSE("false");
private String value;
StatusEnum(String value) {
this.value = value;
}
....
为什么 codegen 将 ON/OFF 枚举转换为 TRUE/FALSE?当我使用 Swagger Editor GUI 生成时它不会这样做。
在 YAML 1.1 中,on
、off
、y
、n
、yes
和 no
是 boolean values. This was changed在 YAML 1.2 中,此版本不再将这些值视为布尔值。
看起来 Swagger Codegen 和 OpenAPI Generator 使用 YAML 1.1 解析器。在这种情况下,您需要将 'ON'
和 'OFF'
括在引号中以将它们视为字符串:
enum:
- 'ON'
- 'OFF'