← inaro.devShopify学習ツール
16-02

GraphQL入門

GraphQLのクエリとミューテーションを読み書きし、レスポンスの形を事前に予測できる

最終確認: 2026-09

解説

受託の現場でなぜ必要か: この回では、GraphQL(欲しいデータの形を送ると、同じ形で返る問い合わせ言語)のクエリとミューテーションを読み書きし、返る形を先に予測できるようになります。
受託では、失敗がuserErrorsとしてHTTP 200で返ることを知らないと、失敗したスクリプトが成功したように見えてしまいます。

GraphQLとは、欲しい形を送ると同じ形で返る仕組み

GraphQLは、1つの入口(エンドポイント)に「欲しいデータの形」を送る仕組みです。
送り先はPOST /admin/api/<version>/graphql.jsonの1本だけです。
返ってくるJSONは、送ったクエリと同じ形になります。
書いていないフィールドは返りません(nullではなく、キー自体がありません)。

引数・変数・IDはどう書くか

絞り込みや件数は、products(first: 10, query: "status:active")のように引数で指定します。
外から渡す値は、$id: ID!のような型付きの変数にします。
文字列をつないでクエリを組み立てるのは避けてください。
IDはgid://shopify/Product/8100000001という形の文字列(GID)です。
管理画面のURLにある数値と対応しますが、APIではこのGIDで扱います。

ミューテーションとuserErrorsとは

データを書き換える操作はmutationと呼びます。
入力の間違い(バリデーション失敗)は、HTTP 200のまま`userErrors`という項目に入って返ります
ステータスだけ見ると成功に見えるので、必ずuserErrorsを読んで、あれば処理を止めます。

発展:フラグメントとエイリアス

同じ選択を何度も書くときは、fragmentに切り出して使い回せます。
同じ名前のフィールドを2回取りたいときは、alias:で別名を付けます。
最初は使わなくても困りません。

ステップ1 / 2

ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。