GraphQL отключить фильтрацию, если переменная фильтра пуста - PullRequest
0 голосов
/ 26 июня 2018

У меня есть запрос Gatsby GraphQL для списка сообщений, упорядоченных по дате и отфильтрованных по категориям.

{
  posts: allContentfulPost(
    sort: {fields: [date], order: DESC},
    filter: {category: {slug: {eq: $slug}}}
  ) {
    edges {
      node {
        title {
          title
        }
        date
      }
    }
  }
}

Прямо сейчас, когда $slug пустая строка "", я получаю

{
  "data": {
    "posts": null
  }
}

Есть ли способ получить все сообщения вместо этого?

1 Ответ

0 голосов
/ 05 июля 2018

С этим запросом это невозможно, даже директивы @ skip / @ include не помогут, потому что вы не можете применить их к полям ввода.

Я бы предложил либо настроить логику на стороне сервера таким образом, чтобы значение null в поле 'eq' игнорировало этот фильтр, либо редактировать отправляемый запрос (менее благоприятный imo).

Похоже, что в схеме graphql, с которой вы работаете, отсутствует нужная вам поддержка фильтрации.

...