【发布时间】:2020-04-21 01:34:17
【问题描述】:
我想使用此模式从 GraphQL Ruby 返回验证失败:https://medium.com/@sachee/200-ok-error-handling-in-graphql-7ec869aec9bc
从我的突变中,我希望能够返回一个像这样的联合的有效负载:
class RegistrationPayloadType < Base::Union
possible_types UserType, ValidationFailureType
def self.resolve_type(object, context)
if context.current_user.present?
UserType
else
ValidationFailureType
end
end
end
而我在突变中的解析方法是这样的;
def resolve(input:)
@input = input.to_h
if registration.save
candidate
else
registration.errors
end
end
然后客户端可以这样调用突变;
mutation UserRegistrationMutation($input: UserRegistrationInput!) {
userRegistration(input: $input) {
__typename
... on User {
id
}
... on ValidationFailure {
path
message
}
}
}
如何在 GraphQL-ruby 中返回联合作为有效负载?
【问题讨论】:
标签: graphql-ruby