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

我正在尝试自定义OpenAPI规范字符串格式之间的映射


时间

日期

约会时间


偏移时间

本地日期

立即的

分别。


我当前使用的是自己的自定义服务器生成器,该生成器扩展了JavaJerseyServerCodegen,因此我进行了更改,一切正常


@Override

public void processOpts()

{

  super.processOpts();

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

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


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

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

 ...

问题是时间格式,因为默认情况下,代码生成没有定义此格式,因此我可以“覆盖”它。

有可能做我想做的吗?如果可以,怎么办?


慕桂英546537
浏览 221回答 1
1回答

ITMISS

经过大量的头部撞击之后,我尝试了一种KISS方法,并获得了以下解决方案:@Overridepublic String getSwaggerType(final Property property){  if ((property instanceof StringProperty) && ("time".equals(property.getFormat())))  {    return "OffsetTime";  }  else  {    return super.getSwaggerType(property);  }}现在我可以简单地执行以下操作@Overridepublic 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");  ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java