当前位置: 首页 > 知识库问答 >
问题:

Apollo客户端从响应对象中剥离附加结果

段干祺
2023-03-14

我们这样实现了graphql api响应。

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

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

这是意料之中的行为吗?如果是这样,我如何改变它或以不同的方式解决这个问题。我需要得到相应地实现分页的数据总量。

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

共有1个答案

暨修洁
2023-03-14

根据规范,只需要三个顶级键--dataerrorsextensions。如果您包含额外的键,您就会偏离规范--我不希望任何客户机试图读取它们。

最终,这些信息应该包含在架构中,并作为响应中数据的一部分返回。在其他地方返回它(作为响应中的附加键、响应标头等)是一个糟糕的想法,如果原因只是根级别可能有多个查询字段,在这种情况下,您只能传递关于其中一个字段的分页信息,并且不清楚该信息应用于哪个字段。如果您有嵌套的字段也可以分页,也可以这样说。

 类似资料:
  • 反应阿波罗客户端应用程序。我试图使用readQuery从缓存中读取数据,但无法读取缓存字段。 这里有一个纲要: 组件调用,它执行我的查询并缓存结果。查询返回类型。一切都很好,开发工具显示包含一个名为getPost的字段和该帖子。 有一个子组件,它会在单击时删除评论。它调用并删除评论。查询返回类型。 Post有一个注释数组,现在我需要在缓存中更新它的数组并删除已删除的注释。我使用突变中的函数来获取缓

  • 当响应被关闭时,容器必须立即刷出响应缓冲区中的所有剩余的内容到客户端。以下事件表明 servlet 满足了请求且响应对象即将关闭: servlet 的 service 方法终止。 响应的 setContentLength 或 setContentLengthLong 方法指定了大于零的内容量,且已经写入到响应。 sendError 方法已调用。5.6 sendRedirect 方法已调用。 Asy

  • 我正在使用和Web API来执行某些任务,当任务完成时,API会在OK方法中返回一个对象。 代码: 如何在响应中获取此 blob 对象,我认为,这应该是 IHttp 操作结果? 任何帮助是值得赞赏的!

  • 我创建了一个由Apollo客户端和graphQL驱动的react应用程序 定义了我的架构,因此预期结果是一个对象数组(<代码>[{名称:“metric 1”,类型:“type A”},{名称:“metric 2”,类型:“type B”})]) 在jsx文件中,我定义了以下查询: 我用Apollo HOC包装了组件,如下所示: Apollo客户端工作正常,并在渲染方法中返回道具的预期列表。 我想让

  • 我想从服务器获取一个.json文件到客户端的.js文件 下面是app.js:(服务器代码) 我需要它在js文件:

  • 我试图在CXFRS骆驼路由中创建对REST web服务调用的响应,但无论我做什么,对客户端的响应总是相同的200,而不是201。以下是我的路线: 返回正文,但忽略响应代码和内容类型。我做错了什么? 谢谢,马特