gpt4 book ai didi

graphql-ruby - 如何从 GraphQL Mutation 返回联合类型

转载 作者:行者123 更新时间:2023-12-04 17:31:11 24 4
gpt4 key购买 nike

我想使用此模式从 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

而我在 mutation 中的 resolve 方法是这样的;

      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 中返回一个 Union 作为有效载荷?

最佳答案

这个问题的答案实际上非常简单。如果您想从突变中返回不同的类型,在我的例子中是上面的 RegistrationPayloadType。

    class RegistrationMutation < Base::Mutation
argument :input, Inputs::RegistrationInputType, required: true

payload_type RegistrationPayloadType

...
end

使用 payload_type 类方法得到了我需要的东西。

关于graphql-ruby - 如何从 GraphQL Mutation 返回联合类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59562441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com