swagger.yaml ::如何使用“长”数据类型和“时间戳”数据类型生成属性?

时间:2018-11-10 03:40:43

标签: java swagger swagger-codegen swagger-editor

我正在使用swagger-codegen-maven-plugin根据swagger.yaml规范生成Java类。

我在phoneNum中添加了属性swagger.yaml,如下所示:

phoneNum:
    type: number

我希望它生成具有IntegerLong数据类型的属性。
但是它生成为BigDecimal phoneNum;

根据swagger docs,提到使用format: int64

  phoneNum:
    type: number
    format: int64

但是,最终还是生成了private BigDecimal phoneNum;

如果任何人都遇到过类似的问题并有解决方法,请在此处分享。

谢谢。

1 个答案:

答案 0 :(得分:2)

要生成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.util.Date

这是将OffsetDateTime转换为时间戳的一种方法

OffsetDateTime dateTime = OffsetDateTime.now();
Timestamp timestamp = Timestamp.valueOf(dateTime.atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());