Validation Graphql输入强制属性

Validation Graphql输入强制属性,validation,graphql,Validation,Graphql,是否可以使用强制输入或其他输入创建GraphQL输入 例如: input ClientInput { name: String! token: String! email: String! } 我希望其中一个属性令牌或电子邮件是必需的。 如果提供了其中一个,则另一个将成为可选的 可能吗? 如果没有,是否有一种“解决方法”?不,这是不可能的。一种解决方法是将这两个字段设置为aption,然后进行手动验证,在此基础上可以返回自定义错误。 另一种方法是将字段组合成 input

是否可以使用强制输入或其他输入创建GraphQL输入

例如:

input ClientInput
{
    name: String!
    token: String!
    email: String!
}
我希望其中一个属性
令牌
电子邮件
是必需的。 如果提供了其中一个,则另一个将成为可选的

可能吗?
如果没有,是否有一种“解决方法”?

不,这是不可能的。一种解决方法是将这两个字段设置为aption,然后进行手动验证,在此基础上可以返回自定义错误。 另一种方法是将字段组合成

input ClientInput
{
    name: String!
    tokenOrEmail: String!
}
通过这样做,您可以使该字段成为必填字段,然后进行一些解析以确定提供的值是令牌还是电子邮件 更好的方法是添加另一个字段以提供authMethod,如下所示:

input ClientInput
{
    name: String!
    authData: String!
    authMethod: AuthMethod!
}
enum AuthMethod {
  EMAIL
  TOKEN
}

不,这是不可能的。一种解决方法是将这两个字段设置为aption,然后进行手动验证,在此基础上可以返回自定义错误。 另一种方法是将字段组合成

input ClientInput
{
    name: String!
    tokenOrEmail: String!
}
通过这样做,您可以使该字段成为必填字段,然后进行一些解析以确定提供的值是令牌还是电子邮件 更好的方法是添加另一个字段以提供authMethod,如下所示:

input ClientInput
{
    name: String!
    authData: String!
    authMethod: AuthMethod!
}
enum AuthMethod {
  EMAIL
  TOKEN
}