Size: a a a

GraphQL — русскоговорящее сообщество

2021 January 07

А

Артур in GraphQL — русскоговорящее сообщество
Привет ребята! Не могу понять: при срабатывание createPortfolio -> на страничке динамически появляется карточка с информацией. updatePortfolio динамически обновляет инфомрацию в карточке, но вот deletePortfolio шлёт graphql запрос, но динамически не изменяет ничего, только после перезагрузки удаляется одна карточка. Дебажил -> в функцие update (там где DELETE_PORTFOLIO), в переменную newPortfolios всё фильтруется как надо, но на страница контент не меняется. Сомневаюсь что нормально объяснил, но я пытался, просто впервый раз работаю так с мутациями
источник

А

Артур in GraphQL — русскоговорящее сообщество
Использую аполло
источник

ПЧ

Павел Червов... in GraphQL — русскоговорящее сообщество
Артур
Использую аполло
Возможно твой случай: из мутации нужно вернуть id и __type, потому что apollo кеширует по этим 2м полям.
источник

ПЧ

Павел Червов... in GraphQL — русскоговорящее сообщество
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Привет)
Кто подскажет, почему некоторые статьи рекомендуют в GraphQL не выбрасывать ошибки, а возвращать их как ответ?

Например, Python Ariadne так рекомендует: https://ariadnegraphql.org/docs/error-messaging

В чём плюс? Получается очень многословно, а главное, пользователи смогут игнорить ошибки)
источник

SF

Segmentation Fault in GraphQL — русскоговорящее сообщество
Mark Vartanyan
Привет)
Кто подскажет, почему некоторые статьи рекомендуют в GraphQL не выбрасывать ошибки, а возвращать их как ответ?

Например, Python Ariadne так рекомендует: https://ariadnegraphql.org/docs/error-messaging

В чём плюс? Получается очень многословно, а главное, пользователи смогут игнорить ошибки)
Так все библиотеки делают. Почитай офф документацию «почему так».
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Как раз наоборот) Официальная библиотека Apollo предлагает несколько стандартных ошибок, которые как раз возвращаются как GraphQL errors :)

https://www.apollographql.com/docs/apollo-server/data/errors/

> Apollo Server provides a collection of predefined errors, including AuthenticationError, ForbiddenError, UserInputError, and a generic ApolloError.
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Как вы репортуете ошибки приложения?
Анонимный опрос
89%
Выбрасываю через стандартный errors
11%
Возвращаю через union как значение
Проголосовало: 27
источник

SF

Segmentation Fault in GraphQL — русскоговорящее сообщество
Mark Vartanyan
Как раз наоборот) Официальная библиотека Apollo предлагает несколько стандартных ошибок, которые как раз возвращаются как GraphQL errors :)

https://www.apollographql.com/docs/apollo-server/data/errors/

> Apollo Server provides a collection of predefined errors, including AuthenticationError, ForbiddenError, UserInputError, and a generic ApolloError.
Что значит «выбрасывать»? И куда выбрасывать?
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Segmentation Fault
Что значит «выбрасывать»? И куда выбрасывать?
Если я верно понял, то такой ответ от сервера имеется ввиду
источник

SF

Segmentation Fault in GraphQL — русскоговорящее сообщество
Алексей Козин
Если я верно понял, то такой ответ от сервера имеется ввиду
Я его вообще не понял что он спрашивает
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Алексей Козин
Если я верно понял, то такой ответ от сервера имеется ввиду
да, именно так) туда ошибки попадают когда код "выбрасывает" исключение. Простите если нарушил терминологию))
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Segmentation Fault
Я его вообще не понял что он спрашивает
Есть несколько видов ошибок, которе могут прилететь на GraphQL запрос:
- http code НЕ 200,
- Если код 200, то GraphQL error - это как я показал на скрине
- и можно еще сделать кастомный вид ошибки через union, об этом можно тут посмотреть https://www.youtube.com/watch?v=A5-H6MtTvqk
источник

SF

Segmentation Fault in GraphQL — русскоговорящее сообщество
Алексей Козин
Есть несколько видов ошибок, которе могут прилететь на GraphQL запрос:
- http code НЕ 200,
- Если код 200, то GraphQL error - это как я показал на скрине
- и можно еще сделать кастомный вид ошибки через union, об этом можно тут посмотреть https://www.youtube.com/watch?v=A5-H6MtTvqk
Все смешали в кучу...
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Алексей Козин
Есть несколько видов ошибок, которе могут прилететь на GraphQL запрос:
- http code НЕ 200,
- Если код 200, то GraphQL error - это как я показал на скрине
- и можно еще сделать кастомный вид ошибки через union, об этом можно тут посмотреть https://www.youtube.com/watch?v=A5-H6MtTvqk
это понимаю)
одно не могу взять в толк: если возвращать ошибки через union, получается очень многословно. А главное, это позволяет UI игнорировать ошибки.

Так в чём преимущества этого подхода? Почему бы просто не оставить ошибки в errors? )
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Mark Vartanyan
это понимаю)
одно не могу взять в толк: если возвращать ошибки через union, получается очень многословно. А главное, это позволяет UI игнорировать ошибки.

Так в чём преимущества этого подхода? Почему бы просто не оставить ошибки в errors? )
UI имеет 3 валидных стэйта:
- пустой
- с данными
- отображение ошибки

Если нужно богато отображать ошибку, то доп инфу пихают в отдельный тип в union

Посмотри видео, там хорошо рассказывается

Сам я не юзаю union, количество кода перевешивает профит
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
вот меня тоже количество кода пугает) смотрю видео, спасибо)
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Саша приводит отличные примеры! Но всё-таки не призывает ВСЕ ошибки заворачивать в union. Скорее, посмотреть, что некоторые ошибки — это результаты.
Подход хорошо выглядит если возвращается список объектов. С одиночными ответами выгода не так хорошо видна)
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
источник

А

Артём in GraphQL — русскоговорящее сообщество
Mark Vartanyan
Саша приводит отличные примеры! Но всё-таки не призывает ВСЕ ошибки заворачивать в union. Скорее, посмотреть, что некоторые ошибки — это результаты.
Подход хорошо выглядит если возвращается список объектов. С одиночными ответами выгода не так хорошо видна)
а можно ссылочку на видео?
источник