在生成的scala-play-server代码中缺少附加属性的类型



我正在玩openapi-generator,并且无法找到一种方法来让它为scala-play-server生成有效的scala代码。

我使用我从swagger下载的petstore.json。Io,然后跑openapi-generator generate -i petstore.json -g scala-play-server

似乎有点工作,除了,它生成的模型看起来像这样:

case class Tag(
id: Option[Long],
name: Option[String]
additionalProperties:
)

…当然,这不是有效的scala代码,并且无法编译。

我试着添加

--additional-properties=disallowAdditionalPropertiesIfNotPresent=false

我用谷歌搜索了一些网站,建议将改为命令行,但这没有任何区别(将false更改为true也没有)。

我想,我可以把一个sed脚本放在一起,在所有生成的文件上运行,用additionalProperties: Map[String, Any]替换additionalProperties:(或者只是完全删除那些行-不知道为什么我想要它们在那里),但我想我只是先问一下,以防有人知道一个简单的修复方法,不会是这个"hacky"…

免责声明,我不是scala开发人员,但我花了很多时间在open-api-generator上。

这似乎是一个已知的bug,报告于2022年9月。然而,它似乎没有任何评论或牵引力。请随意向现有票据添加注释。有时这有助于他们获得知名度。

我不知道这是否重要,但我测试了其他scala服务器生成器,它们都生成了没有附加属性的类。因此,如果您能够使用不同的scala服务器生成器,这可能是一个解决方案。

如果您不打算使用OAS的additionalProperties特性,那么另一个潜在的解决方案是将其从mustache模板中删除。您可以通过模板来实现这一点。将caseClass.mustachemodel.mustache模板复制到您选择的目录中,并删除对additionalProperties的引用。然后,通过-t/--template将模板目录添加到CLI生成器中。

我尝试使用模板方法自己,它的工作原理,但是你将不再能够使用additionalProperties功能从OAS在你的模式。

最新更新