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

Общаемся на темы, посвященные GraphQL и опыту его использования. Проблемы. Новости. Решения. Вам могут быть полезны: @apollo_ru, @react_js, @vuejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание в чате было полезным и комфортным.

352 members

Архив канала @graphql_ru 16 апреля 2018 г.

08:48:58 ДП
User 224769697
Всем привет, а как правильно делать такое ?:
есть тип пользователя, и есть Query currentUser которая возвращает пользователя, но в пользователе, например, есть поле "пароль" и его возвращать не нужно, как такое правильно делать ?)
08:49:21 ДП
08:49:43 ДП
08:50:04 ДП
User 224769697
в ресолвере я не возвращаю пароль, но может это как то и в Query обозначать надо ?)
08:50:45 ДП
User 247838336
User 224769697
в ресолвере я не возвращаю пароль, но может это как то и в Query обозначать надо ?)
убрать password из type User?
08:51:17 ДП
User 224769697
а  если есть мутация, в которой нужно устанавливать password ?
08:52:30 ДП
User 224769697
пароль тут плохой пример вроде, но может будут такие моменты где нужно разграничивать доступ к разным полям для разных пользователей или вроде того
08:54:09 ДП
User 247838336
User 224769697
а  если есть мутация, в которой нужно устанавливать password ?
например сделать отдельный input SignupInput
08:54:33 ДП
User 247838336
User 224769697
пароль тут плохой пример вроде, но может будут такие моменты где нужно разграничивать доступ к разным полям для разных пользователей или вроде того
сделать поле необязательным, то есть убрать !
08:55:35 ДП
User 224769697
а что есть "input SignupInput" ?)
08:57:05 ДП
User 247838336
http://graphql.org/learn/schema/#input-types
graphql.org/learn/schema
GraphQL gives clients the power to ask for exactly what they need and nothing more, making it easier to evolve APIs over time.
09:06:16 ДП
User 144022504
User 224769697
на сервере уже реализовал jwt, на клиенте вроде как частично тоже, но пока просто в локалсторейдж (в который не стоит ложить токен изза несекьюрности, но в большинстве туториалов так делкют), но как с реактом  это дружить пока не понял )
https://www.youtube.com/watch?v=bXpuqDOYHGk&index=4&list=PLN3n1USn4xlmqhVdKMurNREwtiUpq-SFy

здесь решается эта задача на React-Native, на React подобно)
youtube.com/watch?v=bXpuqDOYHGk&list=PLN3n1USn4xlmqhVdKMurNREwtiUpq-SFy&index=4
Building a sign up screen in React Native. Code: https://github.com/benawad/react-native-ecommerce/tree/2_signup_screen Links from video: https://stackoverfl...
09:06:58 ДП
User 224769697
@iamgilaz @playra спасибо, ребят )
10:01:00 ДП
User 144022504
User 224769697
@iamgilaz @playra спасибо, ребят )
если уж выбрали Apollo, то я бы отказался от Redux, так как у Аpollo свой стейт менеджмент и во время реализации подписок на фронте возникнет потребность в сравнении данных и начнется каша в стейтах, можно конешно и эту кашу съесть, но лично я отказывюсь потихоньку от Redux🤓.
10:03:01 ДП
User 224769697
так у меня и нет редакса ) я выше писал что с редаксом было понятно что делать, а с кешем графа не оч )
10:03:08 ДП
User 224769697
но уже разобрался вроде
10:03:24 ДП
User 144022504
User 224769697
так у меня и нет редакса ) я выше писал что с редаксом было понятно что делать, а с кешем графа не оч )
понял😜
06:31:28 ПП
User 7121855
А каким образом реализуются ошибки (например, ошибка доступа) в GraphQL? Например, сервер отказывает клиенту в выполнении запроса. Как это должно быть отражено в схеме?
06:31:43 ПП
User 7121855
Юнион?
07:19:50 ПП
User 43503298
User 7121855
А каким образом реализуются ошибки (например, ошибка доступа) в GraphQL? Например, сервер отказывает клиенту в выполнении запроса. Как это должно быть отражено в схеме?
http://facebook.github.io/graphql/October2016/#sec-Errors
07:21:50 ПП
User 43503298
На самом деле спецификация - это, наверное, самый важный документ, который надо прочитать прежде чем читать любой другой туториал
07:30:55 ПП
User 224769697
ох, и у меня похожий вопрос назрел, если кто то может подсказать, не гоните в спецификацию , обещаю почитать чуть позже :)
07:31:03 ПП
User 224769697
вот такой ендпоинт для графа получается
07:31:04 ПП
07:31:20 ПП
User 224769697
и если пользователь не авторизирован, то на клиенте такая ошибка:
07:31:31 ПП
07:31:36 ПП
User 224769697
что впринципе логично
07:32:10 ПП
User 55289203
Надо отдавать graphql ошибку
07:32:13 ПП
User 224769697
но такое происходит в момент после логаута, и ререндер страницы не происходит
07:32:28 ПП
User 224769697
а нужно чтобы редиректило на страницу логина
07:32:31 ПП
User 55289203
graphql сервер должен отвечать либо 200, либо 500
07:32:32 ПП
User 224769697
а как её отдавать ?)
07:32:58 ПП
User 224769697
прослойку 
passport.authenticate('jwt', { session: false }),
придется убрать и писать что то своё?
07:33:14 ПП
07:33:18 ПП
07:33:47 ПП
User 55289203
Ну у меня обертка над паспортом написана для такого
07:34:24 ПП
User 55289203
В nest.js есть guard'ы для graphql резолверов, очень удобно )
07:34:57 ПП
User 224769697
бля, каждый день по новой библиотеке уже надо изучать )
07:35:20 ПП
User 224769697
спасибо, посмотрю что там )
07:35:30 ПП
User 224769697
а на твою обёртку можно взглянуть ?)
07:39:14 ПП
User 55289203
User 224769697
а на твою обёртку можно взглянуть ?)
Как-то так
07:40:22 ПП
User 224769697
спасибо, ничего не понятно, но буду разбиратсья))
07:40:47 ПП
User 55289203
Ну оно nest.js-специфично.
07:41:24 ПП
User 55289203
Вот такой ответ получается
07:47:04 ПП
User 7121855
User 43503298
На самом деле спецификация - это, наверное, самый важный документ, который надо прочитать прежде чем читать любой другой туториал
Чёт не очень связно написано. Возникакет больше вопросов, ответы на которые совсем не очевидно, где искать.
07:49:28 ПП
User 7121855
А addUser — это в Query? =)
07:54:54 ПП
User 43503298
User 7121855
Чёт не очень связно написано. Возникакет больше вопросов, ответы на которые совсем не очевидно, где искать.
TLDR; По спеке GraphQL отвечает в формате { data: {...}, errors: {...} }, если запрос исполнился успешно, то errors быть не должно, если произошла ошибка не связанная с самим запросом, то errors должен содержать минимум один элемент
07:55:17 ПП
User 43503298
Короче говоря, в схеме ошибки никак не отражаются
08:45:35 ПП
User 224769697
а apollo-link-error кто то пробовал?
https://www.apollographql.com/docs/react/features/error-handling.html
apollographql.com/docs/react/features/error-handling.html
Handling errors with Apollo
08:53:07 ПП
User 7121855
Как мне в graphql-js вернуть несколько ошибок?