我在yml文件中有一个变量
startDate:
type:string
format:date
我正在使用swagger-generator从yaml生成java代码。
它正在生成一个startDate变量,如下所示
@JsonProperty("startDate")
private LocalDate startDate = null;
但我需要如下
@JsonProperty("startDate")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
private LocalDate startDate = null;
有人可以帮我吗?
这里的问题是你试图使用Java 8
序列化LocalDate
@JsonFormat
而不使用正确的jackson模块/依赖。如果您查看注释文档,它会说;
常见用途包括在备用表示之间进行选择 - 例如,将Date序列化为数字(Java时间戳)还是字符串(例如ISO-8601兼容时间值) - 以及使用pattern()属性配置精确详细信息。
swagger codegen
项目中没有关于如何指定特定于语言的配置选项的正确文档,我只在以下票证中看到了这些配置选项;
https://github.com/swagger-api/swagger-codegen/issues/7795
根据那个问题,你可以强制Swagger codegen使用java8
dateLibrary
。