java - swagger.yaml::如何生成具有 "Long"数据类型和 "Timestamp"数据类型的属性?

标签 java swagger swagger-codegen swagger-editor

我正在使用 swagger-codegen-maven-plugin 生成基于 swagger.yaml 规范的 Java 类。

我在 swagger.yaml 中添加了一个属性 phoneNum 如下:

phoneNum:
    type: number

我期待它生成具有 IntegerLong 数据类型的属性。
但它生成为 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/

相关文章:

swagger - 如何在 OpenAPI (Swagger) 中指定多个主机?

angular - "Can' t 解析所有参数……”带@Optional 装饰器

java - Swagger:结构错误应该具有必需的属性 'paths' missingProperty:路径 - 将通用组件提取到外部 swagger 文件

使用 APIM 验证 Azure OpenAI Swagger 失败

swagger-codegen - 为我的 api 中的每个 Controller 生成单独的角度服务文件

Java 检查日期(由整数组成)是否有效

java - 当前时间介于给定的 2 时间之间 java

java - 为什么在 java 类中包含类成员变量不像 ruby​​ mixin 那样?

java - 我收到消息 org.openide.filesystems 不存在。

javascript - 使用 Swagger 从 NodeJS 调用 Wordnik API