Существует плагин swagger, который говорит о поддержке Swagger 2.0, однако на самом деле он использует аннотации чванства 1.5.x, а не 2.0, поэтому не поддерживает Open Api 3.0.
Кому-нибудь удалось связать 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




Похоже, что поддержка Open API 3.0 в чванстве не планируется в ближайшем будущем, согласно этому - Поддержка Swagger / OpenAPI 3.0?.
Альтернативным решением для этого может быть iheartradio / play-swagger. Ссылка на эту альтернативу также упоминается в swagger. Но с этим альтернативным api вы можете указать спецификации Open API 3.0 как Комментарии в форме JSON или YAML внутри вашего play Маршрут файла, а не как аннотацию в контроллере.
В качестве альтернативы спецификации могут быть сохранены (с использованием чванливый редактор) в отдельном файле JSON / YAML и могут быть просмотрены / представлены с помощью swagger или другого средства просмотра, поддерживающего спецификации Open API, такого как OpenAPI-GUI.