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

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

352 members

Архив канала @graphql_ru 25 июля 2017 г.

06:53:22 ДП
User 128278891
Всем привет! Подскажите, пожалуйста, про фильтрацию сущностей через вложенные сущности. Например, у меня есть посты и комментарии к ним. Мне нужно выбрать только те посты, к которым написал комментарий некоторый пользователь. Как будет правильно запросить эти посты?

query {
  posts(comment_author_in: ['pupkin']) {
    id,
    title,
    comments {
      author,
      content
    }
  }
}

или

query {
  posts {
    id,
    title,
    comments (author: 'pupkin') {
      author,
      content
    }
  }
}

Мне кажется что второй вариант немного не про то, а первый не нравится тем, что если появится необходимость фильтровать по каким-то еще полям из комментов или каких-то других связанных сущностей, у меня будет перегружен интерфейс posts. Какие есть лучшие практики по этому поводу?
08:16:04 ДП
User 35318732
мне кажется это типа как передавать параметры в функцию, если их мало то через запятую, если параметров много, то объектом, здесь наверно то же самое, если ты в дальнейшем хочешь все запросы через один query делать то одно, если у тебя на каждый фильтр будет свой query то это другой вариант
08:56:18 ДП
User 128278891
User 35318732
мне кажется это типа как передавать параметры в функцию, если их мало то через запятую, если параметров много, то объектом, здесь наверно то же самое, если ты в дальнейшем хочешь все запросы через один query делать то одно, если у тебя на каждый фильтр будет свой query то это другой вариант
немного не про это вопрос. вопрос в том куда передавать аргументы. мы тут пообщались, почитали доки, пришли к выводу что нужен вариант 1 + там будет отдельный тип для фильтрации по связанной сущности
08:58:45 ДП
User 35318732
а все, вижу, невнимательно посмотрел запрос))
09:04:33 ДП
User 35318732
кстати накину вопрос: в реактовской компоненте избегаю всегда работы с промисами, то есть не использую никогда someApiRequest().then(result => ...)
так как компонента может размаунтиться к моменту резолва, а использовать .isMounted() это антипаттерн, соответственно в редаксе я мог в компоненте вызвать функцию а результат и ошибки положить в стор и тащить их в компоненту через проперти, но как сделать такой хак с аполло?
09:09:13 ДП
User 35318732
более конкретно: есть компонента с формой которой не нужны никакие данные, пробрасываю мутацию и вызываю ее на сабмит, мне надо в результате либо свернуть форму на саксес либо показать ошибки, сейчас я могу результат только брать из .then() и сохранять в state, но причину, по которой я считаю, что так делать неправильно я написал выше