我可能想做一些奇怪的事情,因为这似乎不是一个常见的问题(或者也许我问的都是错的)。我原以为这会很简单。
基本上,我正在寻找一种与以下方法相同的方法,除了使用 gradle openapi-generator 插件:
openapi-generator 生成 -i www.example.com/openapi-doc -g spring
我尝试过以下内容(以及相关的错误):
- inputSpec.set("www.example.com/openapi-doc") --> Cannot convert URL {} to a file
- inputSpec.set(URL("www.example.com/openapi-doc").readText()) --> specified for property 'inputSpec' does not exist
实际的代码看起来像这样:
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 生成器。
关于kotlin - 如何在 Gradle 中从 uri 生成 openapi 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66047718/