Graphqlサーバーへのリクエスト数を減らしたい。 次のような配列にオブジェクトがあります
[{name: "gokhan", age: 20}, ...];
配列のすべての項目を追加するには、graphql ミューテーションを使用します。
配列に 50 個のアイテムがある場合、すべてのデータを追加するには50 個のリクエストを送信する必要があります。リクエストの数を減らす方法はありますか?
Graphqlサーバーへのリクエスト数を減らしたい。 次のような配列にオブジェクトがあります
[{name: "gokhan", age: 20}, ...];
配列のすべての項目を追加するには、graphql ミューテーションを使用します。
配列に 50 個のアイテムがある場合、すべてのデータを追加するには50 個のリクエストを送信する必要があります。リクエストの数を減らす方法はありますか?
これを解決するには、主に 2 つのオプションがあります。
GraphQLList
オプション 1 (推奨):これらの入力オブジェクトを処理する新しいミューテーションを GraphQL スキーマに追加します。これを行う方法は、使用している GraphQL サーバーによって異なります (PostGraphile では、カスタム ミューテーションまたはスキーマ拡張を使用します)。しかし、スキーマ定義言語は次のようになります。
input CreateManyPeopleInput {
people: [CreatePersonInput!]!
}
type CreateManyPeoplePayload {
createdPeople: [Person!]
}
extend type Mutation {
createManyPeople(input: CreateManyPeopleInput): CreateManyPeoplePayload
}
オプション 2: 「クエリのバッチ処理」を有効にします。これを使用するには、GraphQL Query Batching をサポートするサーバーとクライアントの両方が必要です。基本的に、1 つのリクエストで複数の GraphQL クエリを送信し、1 つのレスポンスですべてのレスポンスを取得できます。これには GraphQL スキーマを変更する必要はありませんが、それほど効率的ではなく、典型的な実装では 1 つのリクエストに最大 10 個のクエリしかバッチ処理できないため、50 個の作成には 5 個のリクエストが必要になる場合があります。