我正在玩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.mustache
和model.mustache
模板复制到您选择的目录中,并删除对additionalProperties
的引用。然后,通过-t/--template
将模板目录添加到CLI生成器中。
我尝试使用模板方法自己,它的工作原理,但是你将不再能够使用additionalProperties
功能从OAS在你的模式。