Apollo Client 从响应对象中剥离额外的结果

Apollo Client strips away additional results from response object

我们已经像这样实现了我们的 graphql api response

{
  data:  {...},
  skip: 0,
  limit: 10,
  total: 100,
  hasMore: true
}

如果我通过 graphiql 查询我们的 api,响应看起来像预期的那样。 但不幸的是,我们应用程序中的 apollo 客户端从 return 对象中剥离了除 data.

之外的所有属性

这是预期的行为吗? 如果是这样,我该如何改变它或以不同的方式解决这个问题。 我需要获取数据总量来实现相应的分页。

我知道 fetchMore 有一个方法,但它不会告诉我列表中条目的总数。

根据 spec 只有三个 top-level 键是预期的 -- dataerrorsextensions。如果您包括其他密钥,您将要 off-spec -- 我不希望任何客户端尝试读取它们。

最终,此信息应包含在您的架构中,并作为响应中 data 的一部分返回。在其他任何地方返回它(作为响应中的附加键,作为响应 headers,等等)是一个坏主意,如果没有其他原因,除了你可以在根级别有多个查询字段,其中在这种情况下,您只能传达有关其中一个字段的分页信息,并且不清楚该信息适用于哪个字段。如果您有也可以分页的嵌套字段,也可以这样说。