我正在使用Swagger Codegen 3.0.8生成Java文件。 yaml规范的一部分是
PrepositionalPhrase:
type: object
required:
- preposition
- objects
properties:
preposition:
description: The preposition
type: string
enum:
- of
- on
- or
(为简洁起见,删除了更多的值)。生成的枚举是
public enum PrepositionEnum {
OF("of"),
TRUE("true"),
OR("or")
}
出于某种原因,似乎on
被映射到true
。我可以看到这种情况发生在某些配置解析器中,其中“ on”在逻辑上表示“ true”,但不适用于代码生成。
我正在使用的命令行是
swagger-codegen generate \
-i api.yaml \
-l java \
--api-package com.example \
--artifact-version 1.2.0 \
--artifact-id example \
--group-id com.example \
--model-package com.example.model
有什么方法可以防止这种情况发生?
根据此票证swagger-codegen/issues/2559,它是一种YAML格式的功能,似乎是正确的:
独立于语言的标量类型:{〜,null}:Null(无值)。[1234,0x4D2,02333]:[十进制整数,十六进制整数,八进制整数][1_230.15,12.3015e + 02]:[固定浮点数,指数浮点数][.inf,-.Inf,.NAN]:[无限(浮点),负数,不是数字]{Y,true,Yes,ON}:布尔值true{n,FALSE,否,关闭}:布尔值false
显然,解决方法是引用YAML文件中的值。
顺便说一下,您的YAML中有一个错别字:of应该是off(并且应该转换为false:)]