操作apollo中的resolveinfo对象

Manipulate the resolveinfo object in apollo

我正在使用 apollo-server 并且我有一个特殊情况需要在解析器中以编程方式更改输入查询。

例如: 假设我得到一个如下所示的 graphQL 查询:

query {
  Car {
    brand
    color
  } 
}

当此代码到达我的解析器时,我想更改 resolverInfo 参数对象以在查询中添加一个额外的字段。像这样:

query {
  Car {
    id    //  <--- This is the new field
    brand
    color
  } 
}

这件事容易做到吗?

这不是您想要做的事情,即使这是可能的。

GraphQL 的重点在于客户端只请求它需要的数据。如果它没有请求一个字段,那么它是由客户端来处理的,而不是你。

也就是说,您不负责解析客户端未请求的字段。