【问题标题】:GraphQL netflix-dgs codegen generateJava imports java.util unnecessarilyGraphQL netflix-dgs codegen generateJava 不必要地导入 java.util
【发布时间】:2022-02-02 19:25:52
【问题描述】:

我将以下类型和枚举添加到我的 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.fiverr.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

如何删除 make generateJava not import Currency from utils? 谢谢

【问题讨论】:

    标签: java kotlin graphql codegen netflix-dgs


    【解决方案1】:

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

    来自build.gradle.kts的示例

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

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 2021-12-23
      • 2021-07-14
      • 2021-06-22
      • 2023-02-02
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      相关资源
      最近更新 更多