我正在使用 swagger-codegen-maven-plugin
生成基于 swagger.yaml
规范的 Java 类。
我在 swagger.yaml
中添加了一个属性 phoneNum
如下:
phoneNum:
type: number
我期待它生成具有 Integer
或 Long
数据类型的属性。
但它生成为 BigDecimal phoneNum;
根据 swagger docs ,有人提到使用 format: int64
phoneNum:
type: number
format: int64
但它仍然会生成 private BigDecimal phoneNum;
如果你们中的任何人遇到过类似的问题并且有解决方法,请在这里分享。
谢谢。
最佳答案
为了生成 Long
属性,您必须使用 integer
作为类型,使用 int64
作为格式
phoneNum:
type: integer
format: int64
查看AbstractJavaCodegen我认为没有办法生成 Timestamp
属性。
唯一可用的类型是:
org.threeten.bp.LocalDate
org.threeten.bp.OffsetDateTime
org.joda.time.LocalDate
org.joda.time.DateTime
java.time.LocalDate
java.time.LocalDateTime
java.time.OffsetDateTime
java.time.Instant
(2019 年 2 月添加)java.util.Date
这里有一种方法可以将 OffsetDateTime 转换为时间戳
OffsetDateTime dateTime = OffsetDateTime.now();
Timestamp timestamp = Timestamp.valueOf(dateTime.atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
关于java - swagger.yaml::如何生成具有 "Long"数据类型和 "Timestamp"数据类型的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235812/