Swagger 2.0 (Open Api 3.0) с Play Framework 2.6 (Java) - PullRequest
0 голосов
/ 24 сентября 2018

Существует плагин swagger-play , который говорит, что поддерживает Swagger 2.0, однако на самом деле он использует аннотации swagger 1.5.x , а не 2.0, таким образом, не поддерживает Open Api 3.0.

Кому-нибудь удалось связать Open Api 3 с Play Framework с помощью объявления интерфейса с кодом в первую очередь?

Я пытался объявить явную зависимость ядра Swagger как

"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

1 Ответ

0 голосов
/ 19 октября 2018

Похоже, что поддержка Open API 3.0 в swagger-play не планируется в ближайшем будущем, как указано ниже - Поддержка Swagger / OpenAPI 3.0? .

Альтернативное решение для этого может быть iheartradio / игра-чванство .Ссылка на эту альтернативу также упоминается в swagger-play Но с этим альтернативным API вы можете указать спецификации Open API 3.0 как comments в форме JSON или YAML внутри вашей игры Route файл, а не аннотация в контроллере.

В качестве альтернативы спецификации могут быть сохранены (с помощью swagger-editor ) в отдельном файле JSON / YAML и могут быть просмотрены / отображены с помощью swagger-ui или другого OpenСпецификация API, поддерживающая просмотрщик, такой как OpenAPI-GUI .

...