GraphQL突变中的条件args?

GraphQL突变中的条件args?,graphql,apollo,Graphql,Apollo,假设我有一个突变,它有一个类型arg。根据type的值,我可以进行变异接受另一个arg作为输入类型,或者调用变异 如何在graphql中实现它?我知道查询有@skip和@include指令(用于字段,而不是参数)。对于突变,是否存在类似的情况?或者我应该将附加参数指定为可选参数,然后在服务器上进行验证吗?对此会有一系列的意见。主要问题是,由于无法为输入类型定义联合,因此无法在模式级别对输入进行详尽的建模。我的意思是,如果您需要比required/notrequired更深入的验证,GraphQL

假设我有一个
突变
,它有一个
类型
arg。根据
type
的值,我可以进行
变异
接受另一个
arg
作为输入类型,或者调用
变异


如何在
graphql
中实现它?我知道查询有
@skip
@include
指令(用于字段,而不是参数)。对于
突变
,是否存在类似的情况?或者我应该将附加参数指定为可选参数,然后在服务器上进行验证吗?

对此会有一系列的意见。主要问题是,由于无法为输入类型定义联合,因此无法在模式级别对输入进行详尽的建模。我的意思是,如果您需要比required/notrequired更深入的验证,GraphQL的类型系统将不会帮助您

目前,我倾向于处理变异函数本身的所有复杂验证。本质上,将所有输入参数标记为非必需,并让它通过您选择的验证方法进行验证

对于简单的突变,比如
do\u foo\u with\u bar(bar\u id:Int!)
,我仍然会让模式处理验证。但是对于更复杂的事情(比如一个复杂的表单),如果你用代码做事情,你会有一个更容易的时间