GraphQL查询:仅包括字段(如果不为null)

asc*_*sco 12 graphql

GraphQL是否有可能让客户端告诉服务器只有当该字段不是时才需要字段null

鉴于查询

query HeroAndFriends {
  hero {
    name
    friends {
      name
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

那么响应应该是这样的

{
  "data": {
    "hero": {
      "friends": [
        {
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

代替

{
  "data": {
    "hero": {
      "name": null,
      "friends": [
        {
          "name": "Luke Skywalker"
        },
        {
          "name": "Han Solo"
        },
        {
          "name": "Leia Organa"
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这可能不违反GraphQL规范吗?

Yas*_*our 5

据我所知,这是不可能的,有像@skip和@include 这样的指令.指令,但他们需要一个变量,我认为你可以使用graphql团队来扩展指令,只包括字段,如果它不是null.