【问题标题】:How to decrease request numbers with GraphQL mutations?如何使用 GraphQL 突变减少请求数量?
【发布时间】:2019-02-08 05:26:42
【问题描述】:

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

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

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

如果数组有 50 个项目,我需要发送 50 个请求 来添加所有数据。有没有办法减少请求的数量?

【问题讨论】:

标签: javascript request graphql relay relaymodern


【解决方案1】:

有两个主要选项可以解决这个问题:

选项 1(首选):向您的 GraphQL 架构添加一个新的突变,以处理这些输入对象中的 GraphQLList。您将如何执行此操作将根据您使用的 GraphQL 服务器而改变(在 PostGraphile 中,您将使用 custom mutation 或 schema 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 个请求。

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 2020-09-02
    • 2021-04-15
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多