javascript - 如何使用 GraphQL 突变减少请求数量?
问题描述
我想减少对graphql 服务器的请求数。 我在数组中有对象,例如
[{name: "gokhan", age: 20}, ...];
我使用 graphql 突变来添加数组的每个项目。
如果数组有 50 个项目,我需要发送50 个请求来添加所有数据。有什么办法可以减少请求的数量吗?
解决方案
有两个主要选项可以解决这个问题:
选项 1(首选):向您的 GraphQL 模式添加一个新的突变,以处理GraphQLList
这些输入对象中的一个。您将如何执行此操作将根据您使用的 GraphQL 服务器而改变(在 PostGraphile 中,您将使用自定义突变或模式扩展);但模式定义语言可能如下所示:
input CreateManyPeopleInput {
people: [CreatePersonInput!]!
}
type CreateManyPeoplePayload {
createdPeople: [Person!]
}
extend type Mutation {
createManyPeople(input: CreateManyPeopleInput): CreateManyPeoplePayload
}
选项 2:启用“查询批处理”。要使用它,您将需要支持 GraphQL 查询批处理的服务器和客户端。本质上,它允许您在一个请求中发送多个 GraphQL 查询,并在一个响应中获取所有响应。这不需要对您的 GraphQL 模式进行任何更改,但它不会那么高效,并且典型的实现只允许将大约 10 个查询批处理到一个请求中,因此您的 50 个创建可能仍需要 5 个请求。
推荐阅读
- python - Selenium:即使在导入更改后变量也不会改变
- javascript - 升级到 Mojave,现在 Webpack 构建失败
- html - 在全屏 YouTube iframe 上显示文本
- java - 如何在 Spring jar 中动态使用外部属性文件?
- javascript - 在后退按钮上反应路由器重复路由
- r - 如何在base R的图例中使一个单词斜体
- css - Why doesn't min-content work with auto-fill or auto-fit?
- kotlin - 如何使用 MockK 在 android 测试中模拟私有函数?
- angular - Angular 5,根本没有调用http POST
- javascript - 如何在 React Native 中重建 iOS Picker 动画