如何解决如何从 Gradle 中的 uri 生成 openapi 客户端
我可能在尝试做一些奇怪的事情,因为这似乎不是一个常见问题(或者我可能问错了)。我原以为这很简单。
基本上,我正在寻找一种与以下相同的方法,除了使用 gradle openapi-generator 插件:
openapi-generator generate -i www.example.com/openapi-doc -g spring
我尝试过的是以下(以及相关的错误):
- inputSpec.set("www.example.com/openapi-doc") --> 无法将 URL {} 转换为文件
- inputSpec.set(URL("www.example.com/openapi-doc").readText()) --> 指定的属性“inputSpec”不存在
实际代码如下所示:
tasks.register<GenerateTask>("generateClient") {
validateSpec
generatorName.set("spring")
library.set("spring-cloud")
// inputSpec.set("$openapiSpecDir/client/openapi.json") <-- *I am currently using a file,which I don't want to do*
inputSpec.set("https://www.example.com/openapi-doc")
outputDir.set(generatedClientDir)
apiPackage.set("org.example.api")
modelPackage.set("org.example.model")
skipOverwrite.set(false)
templateDir.set("$rootDir/src/main/resources/openapi/templates/client")
configOptions.put("java8","false")
configOptions.put("serializationLibrary","jackson")
configOptions.put("dateLibrary","java8")
}
解决方法
假设您使用的是 OpenAPI Generator Gradle Plugin,在撰写此答案时,不支持从 URL 获取 inputSpec
。但是,对于 Maven,这已经实现了(Issue #2241 以 PR #3826 关闭),因此很有可能通过功能请求实现它,使 Gradle 插件与其 Maven 对应的插件相同。
话虽如此,您可能想要查看Gradle Download Task。 Gradle Download Task 是一个插件,可让您从 URL 下载文件。下载的文件可用于将其输入 OpenAPI 生成器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。