如何使参数非空只在GrpahQL的某些条件下
问题描述:
我想用Ruby on Rails实现一些小的graphql实验。如何使参数非空只在GrpahQL的某些条件下
假设我有一个类型User
,我想通过id
或email
查询用户。所以当提供电子邮件时,id可以不存在,反之亦然。 有没有一个内置的方式来实现这一点,而不是在解析函数中写入手动检查?
该代码的当前状态与以下类似,其中id
和email
需要呈现。
UserField = GraphQL::Field.define do
name("User")
type(Types::User)
argument :id, !types.ID
argument :email, !types.String
resolve ->(object, arguments, context) { ... }
end
答
有没有这样做的本地方式。
使它们都是可选的,然后抛出一个错误,如果他们都设置或两者都为空?
另一种方法是有两个端点:user和user_by_email