OpenAPI 生成器:日期数据类型示例值的格式错误。是否可以定制?
OpenAPI generator: wrong format for the example value of date datatype. Is it possible to customize?
我正在使用最新版本 (4.2.2) 的 openapi-generator 来生成 Java Spring API。配置如下所示:
openApiGenerate {
generatorName = "spring"
inputSpec = "${projectDir}/src/main/resources/api/users-spec.yaml"
outputDir = "${buildDir}/generated/open-api"
apiPackage = "com.example.accounts.api"
invokerPackage = "com.example.accounts.handler"
modelPackage = "com.example.accounts.model"
modelNameSuffix = "Json"
configOptions = [
delegatePattern: "true"
]
}
我发现包含具有示例值的 date
数据类型的定义会在输出 Java 模型中产生不同格式的值。
definitions:
User:
properties:
birthday:
description: Date of birth
type: string
format: date
example: "2020-01-01"
生成的模型是:
@ApiModelProperty(example = "Wed Jan 01 03:00:00 MSK 2020", value = "Date of birth")
@Valid
public LocalDate getBirthday() {
return birthday;
}
在使用 springfox (2.9.2) 创建 swagger ui 之后,我有一个示例请求 {"birthday": "Wed Jan 01 03:00:00 MSK 2020"}
。这令人困惑,因为标准的 Jackson 日期反序列化器无法反序列化此类值。我可以使用 yyyy-mm-dd 格式的示例值吗?
我找到了解决方案here
birthday:
description: Date of birth
type: date
format: yyyy-mm-dd
example: "2020-01-01"
我正在使用最新版本 (4.2.2) 的 openapi-generator 来生成 Java Spring API。配置如下所示:
openApiGenerate {
generatorName = "spring"
inputSpec = "${projectDir}/src/main/resources/api/users-spec.yaml"
outputDir = "${buildDir}/generated/open-api"
apiPackage = "com.example.accounts.api"
invokerPackage = "com.example.accounts.handler"
modelPackage = "com.example.accounts.model"
modelNameSuffix = "Json"
configOptions = [
delegatePattern: "true"
]
}
我发现包含具有示例值的 date
数据类型的定义会在输出 Java 模型中产生不同格式的值。
definitions:
User:
properties:
birthday:
description: Date of birth
type: string
format: date
example: "2020-01-01"
生成的模型是:
@ApiModelProperty(example = "Wed Jan 01 03:00:00 MSK 2020", value = "Date of birth")
@Valid
public LocalDate getBirthday() {
return birthday;
}
在使用 springfox (2.9.2) 创建 swagger ui 之后,我有一个示例请求 {"birthday": "Wed Jan 01 03:00:00 MSK 2020"}
。这令人困惑,因为标准的 Jackson 日期反序列化器无法反序列化此类值。我可以使用 yyyy-mm-dd 格式的示例值吗?
我找到了解决方案here
birthday:
description: Date of birth
type: date
format: yyyy-mm-dd
example: "2020-01-01"