代码之家  ›  专栏  ›  技术社区  ›  user504909

有什么方法可以得到graphql查询字段的对立面吗?

  •  1
  • user504909  · 技术社区  · 6 年前

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

    例如,我有如下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 回复  |  直到 6 年前
        1
  •  0
  •   David    6 年前

    如果要获取查询中没有的内容,则只获取查询中包含的字段,然后为原始查询中没有的字段编写另一个查询。

    最简单的说,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