为了账号安全,请及时绑定邮箱和手机立即绑定

Swagger Codegen将“格式:时间”转换为非字符串

Swagger Codegen将“格式:时间”转换为非字符串

慕桂英546537 2021-05-14 18:15:07
我正在尝试自定义OpenAPI规范字符串格式之间的映射时间日期约会时间至偏移时间本地日期立即的分别。我当前使用的是自己的自定义服务器生成器,该生成器扩展了JavaJerseyServerCodegen,因此我进行了更改,一切正常@Overridepublic void processOpts(){  super.processOpts();  typeMapping.put("DateTime", "Instant");  typeMapping.put("date", "LocalDate");  importMapping.put("Instant", "java.time.Instant");  importMapping.put("LocalDate", "java.time.LocalDate"); ...问题是时间格式,因为默认情况下,代码生成没有定义此格式,因此我可以“覆盖”它。有可能做我想做的吗?如果可以,怎么办?
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

经过大量的头部撞击之后,我尝试了一种KISS方法,并获得了以下解决方案:


@Override

public String getSwaggerType(final Property property)

{

  if ((property instanceof StringProperty) && ("time".equals(property.getFormat())))

  {

    return "OffsetTime";

  }

  else

  {

    return super.getSwaggerType(property);

  }

}

现在我可以简单地执行以下操作


@Override

public void processOpts()

{

  super.processOpts();

  typeMapping.put("DateTime", "Instant");

  typeMapping.put("date", "LocalDate");

  typeMapping.put("time", "OffsetTime");


  importMapping.put("Instant", "java.time.Instant");

  importMapping.put("LocalDate", "java.time.LocalDate");

  importMapping.put("OffsetTime", "java.time.OffsetTime");

  ...


查看完整回答
反对 回复 2021-05-19
  • 1 回答
  • 0 关注
  • 220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信