首页 > 解决方案 > 使用 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 文档?

项目中工具的版本:

编辑:

插件的 Gradle 配置:

resolve {
outputFileName = "swagger"
outputDir = "build/swagger_doc"
classpath = sourceSets.main.runtimeClasspath
readAllResources = true
openApiFile = file("openapi_config.yaml")
}

标签: scalagradleswagger

解决方案


推荐阅读