【问题标题】:Apollo Client strips away additional results from response objectApollo Client 从响应对象中去除额外的结果
【发布时间】:2020-01-14 09:04:38
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: graphql apollo react-apollo apollo-client


    【解决方案1】:

    根据spec,只需要三个顶级键——data、errors 和extensions。如果您包含额外的密钥,您将不符合规范 - 我不希望任何客户尝试阅读它们。

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

    【讨论】:

    • 谢谢,但我必须为很多端点实现这个。难道没有更优雅的方式吗?
    • 这取决于你的挂断是什么。
    猜你喜欢
    • 2016-05-16
    • 2018-07-17
    • 2018-06-25
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2018-09-11
    • 2015-10-09
    相关资源
    最近更新 更多