我试图用Ruby on Rails实现一些小的graphql实验。
假设我有一个类型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