graphql中架构类型中两个字段之间的依赖关系
我正在寻找一种方法来描述对象类型字段之间的chema级依赖关系 例如:graphql中架构类型中两个字段之间的依赖关系,graphql,Graphql,我正在寻找一种方法来描述对象类型字段之间的chema级依赖关系 例如: type foo{ obj1: MyOBJ1 obj2: MyOBJ2 } 在后端数据中,只能对obj1或obj2进行消隐,而另一个必须为空。它们不能一起填充或一起为空。 我最好的方法是什么? 感谢类型始终特定于单个字段。默认情况下,字段可以为空,也可以为非空。这就是GraphQL验证输出是否为空的范围。除此之外的任何验证都必须在解析器级别进行 也就是说,使用联
type foo{
obj1: MyOBJ1
obj2: MyOBJ2
}
在后端数据中,只能对obj1或obj2进行消隐,而另一个必须为空。它们不能一起填充或一起为空。
我最好的方法是什么?
感谢类型始终特定于单个字段。默认情况下,字段可以为空,也可以为非空。这就是GraphQL验证输出是否为空的范围。除此之外的任何验证都必须在解析器级别进行 也就是说,使用联合或接口可以实现类似的效果
type Query {
foo: Foo
}
type Foo1 {
obj1: MyObj1!
}
type Foo2 {
obj2: MyObj2!
}
union Foo = Foo1 | Foo2
将每个字段设置为非null可确保给定类型的字段不能为null。在运行时,类型为Foo
的字段将始终解析为两种具体类型之一(Foo1
或Foo2
)。因此,如果我们查询foo
字段,我们将得到
{
"foo": {
"obj1": {...}
}
}
或
请注意,在这种情况下,
obj1
或obj2
在响应中将不为空,而是在响应中完全不包含它。@user1061835有关更多详细信息,请参阅我的编辑
{
"foo": {
"obj2": {...}
}
}