繁体   English   中英

使用Play Framework 2.6(Java)的Swagger 2.0(Open Api 3.0)

[英]Swagger 2.0 (Open Api 3.0) with Play Framework 2.6 (Java)

有一个swagger-play插件,说要支持Swagger 2.0,但实际上它使用swagger注释1.5.x而不是2.0,因此,不支持Open Api 3.0。

有没有人设法使用代码优先接口声明与Play Framework连接Open Api 3?

我试图将显式的swagger-core依赖声明为

"io.swagger.core.v3" % "swagger-core" % "2.0.5"

但没有成功,即我在初始化插件时遇到错误:

[error] 1) Error injecting constructor, java.lang.NoClassDefFoundError: Could not initialize class io.swagger.converter.ModelConverters
[error]   at play.modules.swagger.SwaggerPluginImpl.<init>(SwaggerPlugin.scala:35)
[error]   while locating play.modules.swagger.SwaggerPluginImpl
[error]   at play.modules.swagger.SwaggerModule.bindings(SwaggerModule.scala:11):
[error] Binding(interface play.modules.swagger.SwaggerPlugin to ConstructionTarget(class play.modules.swagger.SwaggerPluginImpl) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
[error]   while locating play.modules.swagger.SwaggerPlugin

看起来Open API 3.0支持swagger-play并不是在不久的将来计划 - Swagger / OpenAPI 3.0支持?

另一种解决方案可能是iheartradio / play-swagger swagger-play中也提到了对此替代方案的引用但是使用此备用api,您可以在播放路径文件中以JSON或YAML的形式将Open API 3.0规范指定为注释 ,而不是作为控制器中的注释。

或者,可以在单独的JSON / YAML文件中维护规范(使用swagger-editor ),并且可以通过swagger-ui或支持OpenAPI-GUI等其他Open API规范查看/公开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM