それはあなたが持っているすべてのタイプのクエリの2種類を提供するのが一般的と非常に便利です:id
または他のユニークなフィールドを持つ単一ノードをフェッチする
クエリ、それはあなたのケースでProduct
だ(もしすでにこれを持っています)。
異なるフィルタ条件に応じて多くのノードをフェッチするクエリは、allProducts
と呼ばせてください。
次に、複数の製品を1つのクエリでフェッチする2つのオプションがあります。
まず、あなたがProduct
クエリを複数回使用して、応答データに名前の衝突を避けるためにGraphQL Aliasesを使用することができます。
query ProductInCartQuery($firstId: ID!, $secondId: ID!){
firstProduct: Product(id: $firstId) {
id
... ProductInfo
}
secondProduct: Product(id: $secondId) {
id
... ProductInfo
}
fragment ProductInfo on Product {
name
price
}
}
あなたが動的に照会するIDに応じて、このクエリ文字列を構築することができます。しかし、それは貴様のIDの数が動的である場合、必要なフィルタ設定でallProducts
クエリを使用するために、おそらく最善です:
query filteredProducts($ids: [ID!]!) {
allProducts(filter: {
id_in: $ids
}) {
... ProductInfo
}
}
fragment ProductInfo on Product {
name
price
}
あなたは私があなたのために用意しthis GraphQL Playgroundで自分自身をそれを試してみることができます。詳細な背景情報はin this articleです。
あなたのスキーマコードを含むように投稿を編集してください。 – maninak
できることは... –
どうすればいいですか?私は編集で私の質問を追加しました。 – Alwox