首页 > 解决方案 > Scala Play openapi 生成器项目缺少导入

问题描述

我想在 scala-play 中创建一个简单的“新闻 api”,其中服务器存根是使用 openapi scala-play-server 生成器生成的。(因此我使用这个https://drive.google.com/file/d/1Qez3JcdaBPNVq1BAWrgcS_sbyDrxAQKM/view?usp=sharing openapi 文件)

以下命令用于生成项目:

openapi-generator generate -g scala-play-server --additional-properties=basePackage=de.hwrBerlin.lehre.effort.newsapi,apiPackage=de.hwrBerlin.lehre.effort.newsapi.generated.api,modelPackage=de.hwrBerlin.lehre.effort.newsapi.generated.model -o api -i openapi.yaml

但是当我开始运行项目sbt run然后打开 localhost:9000 我得到几个错误:

[info] Compiling 14 Scala sources and 2 Java sources to D:\Programmieren\Effort\newsapi\api\target\scala-2.12\classes ...
[error] D:\Programmieren\Effort\newsapi\api\app\de\hwrBerlin\lehre\effort\newsapi\ErrorHandler.scala:3:28: not found: type DefaultHttpErrorHandler
[error] class ErrorHandler extends DefaultHttpErrorHandler {
[error]                            ^
[error] D:\Programmieren\Effort\newsapi\api\app\de\hwrBerlin\lehre\effort\newsapi\ErrorHandler.scala:5:47: not found: type Future
[error]                                e: Throwable): Future[Result] = e match {

...

[error] D:\Programmieren\Effort\newsapi\api\app\de\hwrBerlin\lehre\effort\newsapi\generated\model\News.scala:21:54: not found: value Json
[error]     implicit lazy val newsJsonFormat: Format[News] = Json.format[News]
[error]                                                      ^
[error] 49 errors found
[error] (Compile / compileIncremental) Compilation failed
[error] application -

(完整的堆栈跟踪请看这里https://drive.google.com/file/d/16bdEtOROIGPUIMJvabn3lR4UCnUO4j6V/view?usp=sharing

似乎缺少很多问题,但我不知道如何解决这个问题,除了手动解决。我使用 Windows 10 和 AdoptOpenJDK 版本“11.0.8”

标签: windowsscalaplayframeworksbtopenapi-generator

解决方案


此问题是当前 openapi-generator 版本 (4.yz) 中的一个错误。我在github上打开了一个问题:

https://github.com/OpenAPITools/openapi-generator/issues/7371

wing328(核心团队和OpenAPI Generator的创始成员)建议使用openapi-generator的5.0.0-beta2。这解决了所有导入和依赖问题。


推荐阅读