scala - 使用 Gradle 的 Play 应用程序中的 Swagger API 文档
问题描述
我正在 Scala 中开发一个 Play 应用程序作为一个爱好项目。我使用 Gradle 作为构建工具。
我想使用 swagger 生成 API 文档。我的目标是在项目构建期间使用 Gradle 任务生成包含 JSON 格式的 REST API 文档的 swagger.json 文件。
要生成 swagger 文件,我正在使用swagger-gradle-plugin。我在控制器中使用来自swagger.io.swagger_play库的适当注释对控制器和方法进行了注释。
不幸的是,插件无法识别播放注释。使用 Gradle 解析任务生成的文件 swagger.json 仅获取我在尝试使插件工作时放入控制器中的 JAX-RS 注释。
例如,当我用
@Api(value="testController", tags = Array("Test controller")
注释,解析任务产生空的 swagger.json 文件。
当我使用 JAX-RS 注释对控制器进行注释时
@Path("/")
然后在控制器内部的方法中添加 JAX-RS 注解
@GET
@Path("testEndPoint1")
解决 /testEndPoints1 的任务生成文档。但是来自swagger.io.swagger_play的注释仍然被忽略,因此生成的文档中没有太多信息。
我看到有一些 sbt 插件,但我想使用 Gradle 让它工作。
在使用 Gradle 构建工具时,有什么方法可以在 Play 应用程序中生成 swagger REST API 文档?
项目中工具的版本:
- 玩 2.8
- 摇篮 6.5.1
- 斯卡拉 2.12
- io.swagger.core.v3.swagger-gradle-plugin 2.1.6
- io.swagger:swagger.play_2.12:1.7.1
编辑:
插件的 Gradle 配置:
resolve {
outputFileName = "swagger"
outputDir = "build/swagger_doc"
classpath = sourceSets.main.runtimeClasspath
readAllResources = true
openApiFile = file("openapi_config.yaml")
}
解决方案
推荐阅读
- python - Pythonanywhere 中的 Flask 和静态路径 url 的问题
- c++ - 在项目构建期间提升 1.73 消息报告
- jmeter - 循环计数:永远复选框通过单击任何图标(如保存、lcar、运行或界面中的任何其他图标)自动检查
- python - 在 kivy 中推送通知
- laravel - 两级回数据获取所需的 laravel 模型关系
- android - 如何使用 Recyclerview 的高度调整 ConstraintLayout 高度?
- javascript - 如何使用放在字符串中的多个变量来验证 HTML 内容
- kendo-grid - Kendo Grid Group Header 上的日期格式
- angular - 在 Angular 10 中将 HTML 转换为 PDF
- cloud - 在云上创建端点 HTTP Rest