Вернуть только ошибку дочернего преобразователя в GraphQL

Ниже приводится схема

type Payload {
    name: String!
    address: String!
    phone: String
}

type Mutation {
    login(username: String!, password: String!): Payload!
}

Ниже приведен преобразователь для полезной нагрузки.

Payload: {
    user: {
        resolve: async (parent, args, context, info) => {
            // Some logic here
            throw err;
        }
    }
}

Когда я выдаю ошибку из дочернего преобразователя (здесь преобразователя полезной нагрузки), graphql по-прежнему возвращает все данные полезной нагрузки, возвращаемые из родительского преобразователя, и только для поля пользователя он возвращает ошибку. Можем ли мы изменить это поведение, чтобы возвращать только ту ошибку, которую выдает дочерний преобразователь?


person Yogesh    schedule 19.06.2018    source источник


Ответы (1)


Я не думаю, что это возможно. Согласно документации по ответу GraphQL:

  • Если разрешен какой-либо data и выброшено и error, оба будут возвращены сервером.
person Marco Daniel    schedule 19.06.2018
comment
Есть ли другой способ изменить родительский объект в дочернем объекте перед возвратом? - person Yogesh; 19.06.2018
comment
Насколько мне известно, вы не можете получить доступ к родительскому объекту (преобразователю) или изменить его из дочернего элемента (преобразователя). - person Marco Daniel; 19.06.2018
comment
Ok. Можем ли мы обработать ошибку в преобразователе сшивки схемы и вернуть только ошибку. - person Yogesh; 19.06.2018
comment
Не совсем уверен в этом. - person Marco Daniel; 19.06.2018