GraphQL netflix dgs codegen generateJava不必要地导入java.util



我在schema.graphql 中添加了以下类型和枚举

enum Currency {
USD
EUR
GBP
AUD
CAD
ILS
HKD
SEK
NZD
SGD
CHF
ZAR
BRL
CNY
INR
MYR
MXN
PKR
PHP
TWD
THB
TRY
AED
}
type Money {
amount: Int!
currency: Currency!
}

然后运行generateJava。结果是下面的

package com.example.apps.financial_analytics_kimera.generated.graphql.types
import com.fasterxml.jackson.`annotation`.JsonProperty
import java.util.Currency
import kotlin.Int
public data class Money(
@JsonProperty("amount")
public val amount: Int,
@JsonProperty("currency")
public val currency: Currency
) {
public companion object
}

因此,基本上这里有一个不必要的import java.util.currency,它破坏了我的代码,因为我希望我的代码使用枚举货币,而不是java.util.currency

如何从utils中删除make generateJava而不导入Currency?感谢

显然,在Netflix DGS插件中,我可以为Scalars 配置类型表示

build.gradle.kts示例

val string = String::class.qualifiedName!!
val long = Long::class.qualifiedName!!
val double = Double::class.qualifiedName!!
tasks.withType<GenerateJavaTask> {
packageName = "com.example.apps.sellers_phoenix.graphql.generated"
typeMapping = mutableMapOf(
"MoneyAmount" to double,
"Timestamp" to long,
"URI" to string,
"BigInt" to long,
"PageInfo" to "com.example.apps.sellers_phoenix.api.graphql.model.PageInfo"
)
generateClient = true
}

最新更新