当参数是输入类型时,如何查询GraphQL模式?

当参数是输入类型时,如何查询GraphQL模式?,graphql,Graphql,我对如何查询以下GraphQL模式感到有点困惑。我试图查询口袋妖怪拉搜索结果,但事实上,口袋妖怪输入!在参数和口袋妖怪连接中调用!结果让我很困惑如何正确添加筛选器作为参数?如何正确使用口袋妖怪连接? schema.graphql index.js 我通过对象类型上的GraphQL文档找到了解决方案:。通过将类型嵌套在{}中,可以将其声明为参数 { pokemons(query: {filter: {type: "Water"}}) { edges { name

我对如何查询以下GraphQL模式感到有点困惑。我试图查询口袋妖怪拉搜索结果,但事实上,口袋妖怪输入!在参数和口袋妖怪连接中调用!结果让我很困惑如何正确添加筛选器作为参数?如何正确使用口袋妖怪连接?


schema.graphql

index.js


我通过对象类型上的GraphQL文档找到了解决方案:。通过将类型嵌套在{}中,可以将其声明为参数

{
  pokemons(query: {filter: {type: "Water"}}) {
    edges {
      name
    }
  }
}
pokemons: (__, args) => {
      const { limit, offset, search, filter } = args.query;
      let pokemons = pokemonsData;

      if (search) {
        const regex = new RegExp(search, 'i');
        pokemons = _.filter(pokemons, p => p.name.match(regex));
      }

      if (filter) {
        if (filter.type) {
          const regex = new RegExp(filter.type, 'i');
          pokemons = _.filter(pokemons,p => _.some(p.types, t => t.match(regex)));
        }

        if (filter.isFavorite) {
          pokemons = _.filter(pokemons, p => !!favorites.get(p.id));
        }
      }

      const count = pokemons.length;
      const edges = pokemons.slice(offset, offset + limit);

      return {
        limit,
        offset,
        count,
        edges
      }
    },
{
  pokemons(query: {filter: {type: "Water"}}) {
    edges {
      name
    }
  }
}