gpt4 book ai didi

java - 带有 Play Framework 2.6 (Java) 的 Swagger 2.0 (Open Api 3.0)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:06 31 4
gpt4 key购买 nike

swagger-play插件,表示支持 Swagger 2.0,但实际上它使用 swagger annotations 1.5.x , 不是 2.0,因此不支持 Open Api 3.0。

有没有人设法使用代码优先接口(interface)声明将 Open Api 3 与 Play Framework 连接起来?

我试图将显式的 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

最佳答案

根据这个 - Swagger/OpenAPI 3.0 support?,swagger-play 中的 Open API 3.0 支持似乎在不久的将来没有计划。 .

另一种解决方案可以是 iheartradio/play-swagger . swagger-play 中也提到了对该替代方案的引用但是使用这个备用 api,您可以在 Play Route 文件中以 JSON 或 YAML 的形式将 Open API 3.0 规范指定为 comments,而不是作为 Controller 中的注释。

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

关于java - 带有 Play Framework 2.6 (Java) 的 Swagger 2.0 (Open Api 3.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479525/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com