有什么方法可以反驳graphql查询字段吗?

时间:2019-02-01 05:52:25

标签: javascript graphql

我想得到相反的GraphQL查询字段:

这意味着查询字符串不会对结果产生吸引力,而不在查询字符串内部不会对结果产生吸引力。

由于json记录器种类繁多,因此我无法手动编写相反的查询。有什么办法可以自动编写相反的查询吗?

例如,我有类似JSON的

{
  "data": {
    "source": "AWS",
    "hero": {
      "version": "my version",
      "name": "R2-D2",
      "friends": [
        {
          "attribute": "like something",
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}

我有疑问

{
  source,
  hero {
    name
    friends {
      attribute
    }
  }
}

我想得到一个结果:

{
  "data": {
    "hero": {
      "version": "my version",
      "friends": [
        {
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}

查询中没有的查询字段将出现在结果中,而查询中的查询字段将不在结果中。 如何在JavaScript中执行这些操作?能给我一个例子吗?

1 个答案:

答案 0 :(得分:0)

如果您要获取查询中未包含的内容,则仅获取包含在查询中的字段,然后为不在原始查询中的字段编写另一个查询。

  

最简单的是,GraphQL是关于在对象上询问特定字段的。

https://graphql.org/learn/queries/

查询:

{
  hero {
    version
    friends {
      name
    }
  }
}

结果:

{
  "data": {
    "hero": {
      "version": "my version",
      "friends": [
        {
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}

评论更新:

您的问题更多是关于如何 动态生成GraphQL查询?

在这种情况下,您可以使用片段,但是您仍然必须编写多个查询。

  

使用片段可以构造字段集,然后将它们包含在需要的查询中。

https://graphql.org/learn/queries/#fragments