Обработка частичных ошибок в мутациях GraphQL SPQR
Я придумал упрощенную версию проблемы мутации, которую пытаюсь решить. Моя схема будет выглядеть примерно так, как показано ниже.
Клиенты могут добавлять или удалять одного или нескольких пользователей из отдела. Есть несколько проверок бизнес-логики, которые я бы выполнял перед добавлением или удалением пользователя из отдела.
Я хотел бы иметь способ возвращать частичные ошибки в ответ, т.е. возвращать data
с текущим набором пользователей, а также errors
с указанием информации о неудачных добавлениях / удалениях в мутациях.
Я использую библиотеку graphql spqr при весенней загрузке. Пока все решения, с которыми я столкнулся, возвращаются толькоerrors
без data
или наоборот.
manageDept(
#Users to be added to the department
addedUsers: [UserInput] = [],
#Users to be removed from the department
deletedUsers: [UserInput] = [],
#Department identifier
deptId: String!
): Department
type Department {
#Department identifier
deptId: String!
# users in department
users: [User]
}
Ближайшее, что я нашел до сих пор, - это этот поток, но он используетDataFetcherResult
создание зависимости graphql-java в сервисном коде. Если в SPQR нет альтернативы, я мог бы просто использовать ее.