graphql - Apollo Client 从响应对象中去除额外的结果
问题描述
我们已经像这样实现了我们的 graphql api响应。
{
data: {...},
skip: 0,
limit: 10,
total: 100,
hasMore: true
}
如果我通过 graphiql 查询我们的 api,则响应看起来像预期的那样。但不幸的是,我们应用程序中的 apollo 客户端从返回对象中剥离了所有属性,除了data
.
这是预期的行为吗?如果是这样,我该如何改变它或以不同的方式解决这个问题。我需要获取数据总量以相应地实现分页。
我知道有一种方法,fetchMore
但它不会告诉我列表中的全部条目数量。
解决方案
根据规范,只需要三个顶级键 -data
和. 如果您包含额外的密钥,您将不符合规范——我不希望任何客户尝试阅读它们。errors
extensions
归根结底,此信息应包含在您的架构中,并作为data
响应的一部分返回。在其他任何地方返回它(作为响应中的附加键,作为响应标头等)是一个坏主意,如果没有其他原因,除了你可以在根级别有多个查询字段,在这种情况下你会只能传达有关其中一个字段的分页信息,并且不清楚该信息应用于哪个字段。如果您有也可以分页的嵌套字段,也可以这样说。
推荐阅读
- python - 如何在 python39.zip 中包含用于嵌入式 python 的 numpy?
- ruby-on-rails - 我想为我的任务索引中的每个任务添加一个链接
- python - 如何在 Python 中修复 JSONDecodeError
- css - 按钮悬停css wordpress问题
- google-cloud-ml - 从 Google SA 360 搜索报告 API reportType 中获取错误:关键字报告对 Reports.generate() 的调用无效",
- tcp - Modbus TCP 响应时间
- c++ - 在 C++ 中为大小为 n 的数组的前 m 个元素赋值
- sql-server - SQL Server 导入和导出向导不支持区域性
- shopify - 如何在 LinuxMint 上安装 Shopify SDK
- c# - 如何确保每个 xunit 测试都有一个新的 InMemory 种子数据库?