Как я могу выполнить запрос WpGraphQL с предложением where?

Это отлично работает

  query QryTopics {
    topics {
      nodes {
          name
          topicId
          count
      }
    }
  }

Но я хочу отфильтрованный результат. Я новичок в graphql, но вижу параметр в этой коллекции, который называется «где», после «первого», «последнего», «после» и т. д. Как я могу это использовать? Его тип — «RootTopicsTermArgs», который, вероятно, автоматически сгенерирован из моей схемы. У него есть поля, одно из которых «бездетное» логического типа. То, что я пытаюсь сделать, это возвращать только темы (пользовательская таксономия в Wordpress), в которых есть сообщения, помеченные ими. В основном это мешает мне делать это на клиенте.

data.data.topics.nodes.filter(n => n.count !== null)

Может ли кто-нибудь указать мне хороший пример использования аргументов where с коллекцией? Я перепробовал все варианты синтаксиса, какие только мог придумать. В том числе

  topics(where:childless:true)
  topics(where: childless: 'true')
  topics(where: new RootTopicsTermArgs()) 
  etc... 

Очевидно, что все они неправы.


person Hcabnettek    schedule 21.02.2018    source источник


Ответы (1)


Если пользовательская таксономия, такая как Topics, зарегистрирована в «show_in_graphql» и является частью вашей схемы, вы можете запросить, используя такие аргументы:

query Topics {
  topics(where: {childless: true}) {
    edges {
      node {
        id
        name
      }
    }
  }
}

Кроме того, вы можете использовать статический запрос в сочетании с переменными, например:

query Topics($where:RootTopicsTermArgs!) {
  topics(where:$where) {
    edges {
      node {
        id
        name
      }
    }
  }
}

$variables = {
  "where": {
    "childless": true
  }
};

Я бы рекомендовал использовать GraphiQL IDE, например https://github.com/skevy/graphiql-app, которое поможет проверить ваши запросы, предоставляя подсказки по мере ввода и визуальные индикаторы недопустимых запросов.

Вы можете увидеть пример использования аргументов для условий запроса здесь: https://playground.wpgraphql.com/#/connections-and-arguments

person Jason Bahl    schedule 01.03.2018