javascript - 如何使用 GraphQL 突变减少请求数?

标签 javascript request graphql relay relaymodern

我想减少对 graphql 服务器的请求数。 我有一个数组中的对象,例如

 [{name: "gokhan", age: 20}, ...];

我使用 graphql 突变来添加数组的每个项目。

如果数组有 50 个项目,我需要发送 50 个请求 来添加所有数据。有什么方法可以减少请求的数量吗?

最佳答案

解决这个问题有两个主要的选择:

选项 1(首选):向处理这些输入对象的 GraphQLList 的 GraphQL 模式添加一个新的突变。你如何做到这一点会根据你使用的 GraphQL 服务器而改变(在 PostGraphile 中你会使用 custom mutationschema extension );但是模式定义语言可能看起来像这样:

input CreateManyPeopleInput {
  people: [CreatePersonInput!]!
}

type CreateManyPeoplePayload {
  createdPeople: [Person!]
}

extend type Mutation {
  createManyPeople(input: CreateManyPeopleInput): CreateManyPeoplePayload
}

选项 2:启用 "query batching" .要使用它,您将需要支持 GraphQL 查询批处理的服务器和客户端。本质上,它允许您在一个请求中发送多个 GraphQL 查询,并在一个响应中获取所有响应。这不需要对您的 GraphQL 模式进行任何更改,但效率不高,典型的实现只允许将约 10 个查询批处理到一个请求中,因此您的 50 个创建可能仍需要 5 个请求。

关于javascript - 如何使用 GraphQL 突变减少请求数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52144940/

相关文章:

javascript - 在 JS 中将 2 个值相加

javascript - 主干模型 save() 方法不执行任何操作

javascript - 我如何使用 React Native 将对象保存在移动存储中

javascript - 如何在循环中顺序运行请求?

java - ValidationError FieldUndefined SPQR GraphQL

javascript - 获取 jQuery 后重定向响应

post - Loopj 带正文的 Post 请求

perl - 禁用 HTTP 请求中的 URL 编码

java - 过滤嵌套字段,或将类型映射到查询

typescript - 在 NestJS 中使用与 GraphQL 中的 Input 和 Object 类型相同的类