Express 如何在apollo server中实现@include或@skip指令

Express 如何在apollo server中实现@include或@skip指令,express,graphql,apollo,Express,Graphql,Apollo,我有一个大的数据集,我正在试验。我试图有条件地包含嵌套对象。 我的客户查询: query getAllAlbums ($fetchPhotos: Boolean!){ albums{ id title tags{ ...Tag weight } carouselItems{ id, mediaUrl } photos @include(if: $fetchPhotos){ .

我有一个大的数据集,我正在试验。我试图有条件地包含嵌套对象。 我的客户查询:

query getAllAlbums ($fetchPhotos: Boolean!){
  albums{
    id
    title
    tags{
      ...Tag
      weight
    }
    carouselItems{
      id,
      mediaUrl
    }
    photos  @include(if: $fetchPhotos){
      ...Photo
    }
  }
}
第一次尝试在服务器端实现时,我将其添加到架构中:

type Album @include{
  id: String
  title: String
  tags: [Tag]
  photos: [Photo] @include(if: fetchPhotos)
  carouselItems: [Photo]
}
我收到验证错误:

Error: Directive "@include" may not be used on OBJECT.

Directive "@include" argument "if" of type "Boolean!" is required, but it was not provided.

Directive "@include" may not be used on FIELD_DEFINITION.
好的,我不能在模式上使用它,那么剩下什么呢?解决者?它不在争论中


我如何实现这一点?apollographql文档表示他们支持它,但没有给出这些示例。

中内置了
@skip
@include
指令。您不必在服务器端执行任何操作来启用它们——它们只需与任何符合规范的GraphQL服务器一起工作即可


如果字段或片段上存在
@include
指令,并且
If
值为
false
,则GraphQL运行时将简单地将该字段或片段视为不存在(不会调用解析程序,并且将从返回给客户端的结果中忽略该字段)。当
if
值为
true
时,这同样适用于
@skip
指令。因此,客户端不发送布尔值似乎是个问题。。。我将提出另一个问题。谢谢