validation - Graphql 输入强制属性
问题描述
是否有可能创建带有强制输入或其他输入的 GraphQL 输入。
例如 :
input ClientInput
{
name: String!
token: String!
email: String!
}
我想要其中一个属性token
或者email
是强制性的。如果提供其中之一,则另一个成为可选。
是否可以 ?如果没有,是否有一种“解决方法”?
解决方案
不,这是不可能的。一种解决方法是将这两个字段设置为 aptional,然后进行手动验证,在此您可以返回自定义错误。另一种方法是将字段组合成类似
input ClientInput
{
name: String!
tokenOrEmail: String!
}
通过这样做,您可以使该字段成为必填字段,然后进行一些解析以确定提供的值是令牌还是电子邮件更好的方法是添加另一个字段来提供 authMethod,如下所示:
input ClientInput
{
name: String!
authData: String!
authMethod: AuthMethod!
}
enum AuthMethod {
EMAIL
TOKEN
}
推荐阅读
- c# - WEB API OdataController POST 调用返回 406 Not Acceptable
- arrays - 有没有办法在 Excel-VBA 中显示或查看分配的内存或数组的使用情况?
- html - 引导响应中的不同表列和行
- markdown - 使用 Markdown 文件动态生成单页
- python - 如何让 numpy.zeros() 和 (numpy.ones() * 255) 分别生成黑白图像?
- postgresql - 如何在 kubernetes 上使用密码连接到 psql
- android - Android 在单独的线程中将数据库数据同步到服务器
- android - 如何在使用 ListAdapter 和 DiffUtill 的 RecyclerView 中进行搜索?
- laravel - Laravel 合并关系
- javascript - 如何使用springboot验证数据库中是否存在电子邮件