Kirill Barsukov
Добрый день! Хотел спросить, как лучше всего работать с ошибками Graphql. Клиент написан на реакте, использую Аполло. Мой сервер всегда отдает 200 код и обьект. Если что-то пошло не так, сервер отдает обьект вида:
{
"errors": [],
"data":
null,
}
в массиве errors, сложены все ошибки котороые сервер нашелю Например, User not found. Если ошибки нет, то обьект будет
{
"data":
[],
}
в массиве data будут данные.
Первое, такую ошибку нельзя запихнуть в catch. Мой useMutation hook выглядит примерно так:
findUser({}).then().catch(e => console.log(e))
в then, я могу проверять обект, который возвращает сервер на наличие errors. Это был мой подход. Я очень хотел бы услышать мнение других людей, комментарии, критику. Спасибо!
Твой сервер должен возвращать при возникновении ошибок 400 >, чтобы нормально с помощью try catch их отлавливать, если такое не получается, то писать какую-нибудь обертку на промис findUser, например, который будет из then вытаскивать ответ и при наличие errors, делать reject.