覆盖标准 ID 标量

Overriding standard ID scalar

我想使用 UUID 作为标识符,但标准标量 ID 被强制转换为字符串。 所以在我使用 ID 类型的任何地方都必须从字符串中解析 uuid。

我想知道是否可以用我自己的实现覆盖 ID 类型? 这个标量类型有一些特殊的含义,或者我可以只使用我自己的称为 UUID 的标量作为标识符?

我们无法覆盖可用的缩放器,请参考此 link 进行讨论。

您可以在您的代码中定义一个 UUIDScalar,同样您必须覆盖以下方法

@Override
public Object serialize(Object dataFetcherResult) {
    //
}

@Override
public Object parseValue(Object input) {
    //
}

@Override
public Object parseLiteral(Object input) {
    //
}

参考:Making custom scalars in graphql java

幸运的是,在线提供了为 UUID 制作自定义标量的代码,您可以使用这个 PR