Size: a a a

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

2021 January 07

MV

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

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
https://www.youtube.com/watch?v=RDNTP66oY2o
вот ещё)
тут та же самая презентация, но более свежая дата
источник

А

Артём in GraphQL — русскоговорящее сообщество
спасибо
источник

А

Артур in GraphQL — русскоговорящее сообщество
Не совсем понимаю, как я должен теперь этими полями манипулировать, но спасибо, буду искать
источник

ПЧ

Павел Червов... in GraphQL — русскоговорящее сообщество
Артур
Не совсем понимаю, как я должен теперь этими полями манипулировать, но спасибо, буду искать
Манипулировать ими не обязательно,  просто если ты хочешь, чтобы после мутации у тебя обновились данные в кеше (без перезагрузки страницы) тебе нужно вернуть из мутации эти 2 поля.

Потому что кеш Apollo - это, грубо, плоский массив ключ-значение, в качестве ключа используются эти 2 поля, и если они не вернулись из мутации, то Apollo не сможет обновить данные в кеше.
источник
2021 January 09

ОХ

Олег Хатеев... in GraphQL — русскоговорящее сообщество
Всем привет. Может кто подсказать насчет такого поведения.
Имеется, предположим, список статей. Получаю список , элементом которого является какая то маленькая часть статьи, например только ее заголовок. При клике по элементу списка, уже заказывается фул энтити, со всеми доп. полями. Список имеет пагинацию, тыкаем влева или вправо, всегда перезапрашиваем с сервера список. Для получения списка использую useQuery с network-and-cache, меняется фильтр, квери перезапрашивается.

И вот какое поведение получаю.
Приходит список(отправляется запрос), нажимаю на первую статью(отправляется запрос на получение фул статьи). Нажимаю еще раз на первую статью, уже тянется из кэша, все хорошо.
Через пагинацию захожу на вторую страницу и возвращаюсь на первую, нажимаю на первую статью(она находится в кэше, и все поля нужные там присутствуют), отправляется два запроса. Вначале запрос на фул статью, когда приходят данные, вдруг перезапрашивается список в добавок. Если использовать через рефетч, можно избежать перезапрашивания списка, но фул статья все равно перезапрашивается. Чтобы не перезапрашивалась статья, помогает только указание для списка no-cache.
Ну и вопрос, что не так делаю?)
источник

A

Alex in GraphQL — русскоговорящее сообщество
Мы почти все заворачиваем в union. Это очень удобно использовать на клиенте, чтобы отобразить конкретную ошибку.
источник

A

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

A

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

A

Alex in GraphQL — русскоговорящее сообщество
Единственная проблема была это как без множеста if else доставать данные на TS. Optional chaining не может так работать. Поэтому мы используем ts-optchain.macro с переписанными типами.
т.е. например data?.case?.associatedMatter?.id не работает и выдает ошибку, что нет таких полей в type Warning. oc(data).case.associatedMatter.id('defaultId') работает как надо с autocomplete.
источник

ОД

Олег Дутченко... in GraphQL — русскоговорящее сообщество
Всем привет!
Люди можете кинуть в меня парой ссылок на тему "REST API vs GraphQL". Которые вы считаете показательными.
Мне предстоит убидить "руководящий, не технический, круг лиц" что GraphQL "лучше".
У меня уже есть пак материалов, но возможно кто-то из вас кинет что-то интересное, что мне еще не попадалось...
Материалы от @nodkz, можно не кидать))
Заранее благодарю всех за потраченное время))
источник
2021 January 10

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Alex
Мы почти все заворачиваем в union. Это очень удобно использовать на клиенте, чтобы отобразить конкретную ошибку.
Ух, спасибо! Очень интересно :)
А если вместо этого использовать массив errors, но ошибки чтобы были с конкретным кодом (NotFoundWarning, AuthorizationWarning), был бы тот же результат? как думаете?
источник

A

Alex in GraphQL — русскоговорящее сообщество
Mark Vartanyan
Ух, спасибо! Очень интересно :)
А если вместо этого использовать массив errors, но ошибки чтобы были с конкретным кодом (NotFoundWarning, AuthorizationWarning), был бы тот же результат? как думаете?
Вот хорошая статья на эту тему описывающая все плюсы и минусы разных подходов https://blog.logrocket.com/handling-graphql-errors-like-a-champ-with-unions-and-interfaces/
источник

A

Alex in GraphQL — русскоговорящее сообщество
Основная проблема это как из массива ошибок понять к какому полю\типу эта ошибка относится. Придётся на каждый query писать свой обработчик ошибок.
источник

MV

Mark Vartanyan in GraphQL — русскоговорящее сообщество
Alex
Основная проблема это как из массива ошибок понять к какому полю\типу эта ошибка относится. Придётся на каждый query писать свой обработчик ошибок.
Вот это дело. Спасибо)
источник

АП

Антон Прокопьев... in GraphQL — русскоговорящее сообщество
Всем привет) И всем добра)))
Я как бы фронт, и начал вникать в мир бека.
Занимаюсь сейчас разработкой ерпи где много логики.
Фронт у нас на реакте, бек на laravel, база данных mysql.
Я в качестве тренировки и отточки своих знаний в беке решил использовать ноду так как вроде бы неплохо знаю js.
И вот я решил переписать свой проект с ларавела на ноду а базу использовать mongodb.
Выбрал для себя такой стек MongoDB + ApolloServer + ApolloClient (т.е. везде использовать GraphQl) + React
Вроде посмотрел как работать с монго, как работать с аполло вроде все понятно.

В общем в чем вопрос.
Мне что бы сразу начать качественно разрабатывать, монгу нужно ложить на отдельный сервер vps-vds, так же на другом сервере делать ApolloServer, и клиента на третий? Я правильно понимаю.?
Или мне нужно все в одном сервере хранить? Но так я делать не хочу, так как приложение рассчитано на то что оно будет устанавливаться на разные компании и данные базы данных будут разные для разных компаний.
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Антон Прокопьев
Всем привет) И всем добра)))
Я как бы фронт, и начал вникать в мир бека.
Занимаюсь сейчас разработкой ерпи где много логики.
Фронт у нас на реакте, бек на laravel, база данных mysql.
Я в качестве тренировки и отточки своих знаний в беке решил использовать ноду так как вроде бы неплохо знаю js.
И вот я решил переписать свой проект с ларавела на ноду а базу использовать mongodb.
Выбрал для себя такой стек MongoDB + ApolloServer + ApolloClient (т.е. везде использовать GraphQl) + React
Вроде посмотрел как работать с монго, как работать с аполло вроде все понятно.

В общем в чем вопрос.
Мне что бы сразу начать качественно разрабатывать, монгу нужно ложить на отдельный сервер vps-vds, так же на другом сервере делать ApolloServer, и клиента на третий? Я правильно понимаю.?
Или мне нужно все в одном сервере хранить? Но так я делать не хочу, так как приложение рассчитано на то что оно будет устанавливаться на разные компании и данные базы данных будут разные для разных компаний.
деплоем тоже вы будете заниматься?
источник

АП

Антон Прокопьев... in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
деплоем тоже вы будете заниматься?
Да) Все я делать хочу) Но хочу сделать что бы была изюменка XD
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
у вас на самом деле две слабо связанные друг с другом задачи: разработка приложений и деплой
источник

MZ

Maks Ze in GraphQL — русскоговорящее сообщество
Andrey Nikolaev
у вас на самом деле две слабо связанные друг с другом задачи: разработка приложений и деплой
может просто он devops
источник