mg121
1
いつも大変参考にさせていただいております。
さて、表題のとおり Storefront API をGraphqlを用いてJSで取得する場合(今回はブログ記事を例とします)、
メタフィールド(画像リスト と 商品リスト)を取得することはできたのですが、
JSONには
gid: という リソースIDベースで返ってきます。
gid:をまたAPIで呼び出し、画像のURLや商品名などをループして取得するしかないのでしょうか。
リストなので沢山あり、都度Graphqlリクエストするのは時間的にもリクエストレート的にも厳しいと思いますが、
なにか解決方法をご存じの方ご教示いただけますと幸いです
improv
2
初めまして。
メタフィールドにより紐づけられた商品や画像は、gidが返却されるのみで、詳細情報を得ることができません。
そのため、再度APIリクエストを送って詳細情報を取得する必要があります。
ただし、個別にリクエストを送るのではなく、nodesというクエリを使うことで
一度に複数のgidに対して情報を取得することができます。これにより、リクエストの回数を減らすことが可能です。
以下に、nodesクエリを使用して複数の画像と商品の情報を一括で取得する例を示します。
query {
images: nodes(ids: ["gid://shopify/MediaImage/1", "gid://shopify/MediaImage/2"]) {
... on MediaImage {
id
}
}
products: nodes(ids: ["gid://shopify/Product/1", "gid://shopify/Product/2"]) {
... on Product {
id
}
}
}
公式ドキュメントも参考にしてください
https://shopify.dev/docs/api/storefront/2024-04/queries/nodes
ご参考になれば幸いです。
mg121
3
ご丁寧に回答いただきありがとうございます!
まさに、求めていた答えでした。
また、複数のGIDでリクエストできることもとてもありがたいと思いました。
この度はどうもありがとうございました。