在 graphql-spqr 中用 Double 值对 NaN 建模

Model NaN in a Double value in graphql-spqr

没有标准可以表示NaN and INFINITY in neither the Graphql and also in JSON

在 Java 脚本中,JSON.stringify(0/0)JSON.stringify(1/0) 将只是 return 字符串 null.

当我提供支持 Java 的 GraphQL 端点时,它不会造成什么麻烦。我的值可以是 Java.

中任何有效的 Double
    @GraphQLQuery
    private Double precentage;

我没有什么变通办法,我可以在我正在做的 setter 中修补它。 只是想知道是否有事实上的标准以更好的方式处理它。

我在某个时候也在考虑这个...... 目前的情况是 Double(Java 类型)被映射到 GraphQL Float 标量,不能表示 NaN 或无穷大。 你可以做的是实现你自己的标量(称为 Double)并决定你将如何处理这些特殊情况(使用现有的标量实现作为指导)。也许使用像 NaN+Infinity-Infinity 这样的字符串?最糟糕的是无论您采用何种约定,客户也需要意识到这一点,因为 JSON 也没有表示这些值。

一旦你有了一个你满意的自定义标量,你就可以实现一个超级简单的 TypeMapper,它支持 Double(Java 类型)和 returns这个新标量。

或者回答你原来的问题——不,不幸的是,在 graphql-java 或 SPQR 中还没有开箱即用的东西。但我很高兴扩展 SPQR 的自定义标量来处理这个......如果你想出了一个好的策略,请联系我。