【发布时间】:2021-06-14 04:26:04
【问题描述】:
我正在“玩”graphql-java 和相关的 kickstarter servlet,修改它以根据我自动发现的类型以编程方式构建模式。该文档(几乎)在那里,但在某些地方已经过时并且引用了不推荐使用的方法。我的特殊问题是GraphQLFieldDefinition.Builder 有四种type(...) 方法的变体——三种接受各种(其他)构建器,一种接受GraphQLOutputType,我可能都没有。此外,那些接受构建器的人实际上在这些构建器上调用build() 方法,所以我也急于传递我的任何“未完成”类型的构建器。我想预先定义所有类型,根本没有字段,然后在之后向它们添加字段,但是如果 build() 在那个时间点被调用这些,即使它们今天没有进入不需要的状态,我可以看到未来的更新可能最多需要一次 build() 调用。
所以问题是如何将字段声明为尚未定义或未完全定义的类型?例如,Employee 的 manager 字段本身就是 Employee 类型,例如:
type Employee {
name: String!
manager: Employee
reports: [Employee!]
buddy: Employee
...
}
【问题讨论】:
-
我想我可能已经找到了答案——GraphQLTypeReference。将在创建答案之前检查这是否有效(此时没有给我答案)
-
GraphQLTypeReference 允许引用但不允许可空性规范...
-
OK... GraphQLNonNull 包装器来解决这个问题...
标签: graphql graphql-java