2017-08-11 86 views
0

我想用Ruby on Rails实现一些小的graphql实验。如何使参数非空只在GrpahQL的某些条件下

假设我有一个类型User,我想通过idemail查询用户。所以当提供电子邮件时,id可以不存在,反之亦然。 有没有一个内置的方式来实现这一点,而不是在解析函数中写入手动检查?

该代码的当前状态与以下类似,其中idemail需要呈现。

UserField = GraphQL::Field.define do 
    name("User") 
    type(Types::User) 
    argument :id, !types.ID 
    argument :email, !types.String 
    resolve ->(object, arguments, context) { ... } 
end 

回答

0

有没有这样做的本地方式。

使它们都是可选的,然后抛出一个错误,如果他们都设置或两者都为空?

另一种方法是有两个端点:user和user_by_email