ShopifyのAdmin APIにはGraphQLを用いたAPIがあります。
手軽に試す方法としてGraphiQL (GraphQLではなくGraphiQLなのに注意) というIDEがありますので、今回はShopify GraphiQLの使い方やメリット・デメリットを解説します。
GraphiQLとは
GraphQL公式が運営しているオープンソースプロジェクトです。
GraphQLをブラウザ上でインタラクティブに操作・実行することができます。
グラフィカル (/ˈɡrafək(ə)l/) と発音します。(graphicalと同じ発音)
GraphQLとは
GraphQLはAPIのためのクエリ言語であり、既存のデータでクエリを実行するためのランタイムです。 GraphQLはAPI内のデータの完全で理解しやすい説明を提供し、クライアントに必要なものだけを要求する力を与え、APIを長期的に進化させることを容易にし、強力な開発者ツールを可能にします。
引用: GraphQL | A query language for your API
Shopify GraphiQLの使い方
Shopify GraphiQLは各ストアにアプリをインストールするだけで使えますが、Shopify Devサイト上でデモを触れるので、まずは触ってみましょう!
https://shopify.dev/docs/apps/tools/graphiql-admin-apiWorkshopをやってみよう!
Shopifyが作成した「Learn how to call the GraphQL Admin API」というWorkshopがあります。
英語ですが、Shopify GraphiQLアプリのインストールから簡単なクエリの実行までステップバイステップで解説しているのでとてもオススメです!
Shopify GraphiQLの注意点
Shopify GraphiQLを使う上で1点だけ注意が必要です。
それはアクセス権限 (スコープ) を適切に設定することです。
Shopify内には様々なデータがありますが、その中には取得等をするのに特定の権限が必要なデータがあります。
例えば、商品データにはread権限とwrite権限があり、read権限を持っている場合に商品データを参照することができます。
Admin APIを使うということは、そのストアの様々なデータの取得・変更が可能になります。
適切な権限をShopify GraphiQLアプリに付与することで、必要なデータを消してしまう等のリスクを減らすことが可能です。
write権限は付与しない、read権限も必要なもののみ付与し、必要になったタイミングで追加するという運用が安全です。
Shopify GraphiQLのメリット
簡単にShopify Admin APIを使用できる
上記のように簡単に試せるのがGraphiQLの一番のメリットと言ってもよいでしょう。
cURLやPostmanを使った方法は、アクセストークンを取得する必要があります。
強力なアシスト機能がある
オブジェクトやフィールドのサジェスト機能があるので、クエリを書くのがかなり楽になります。
また、ドキュメントがすぐに参照できたり、クエリのフォーマットも可能です。
Shopify GraphiQLのデメリット
Shopifyアプリ開発の用途には不向き
上述したようにShopify Admin APIのデータにはアクセスできるスコープが存在します。
どのアプリからでも取得できるデータもありますし、そのデータを作成したアプリしかアクセスできないデータもあります。
Shopify GraphiQLはアプリをインストールして使うため、アクセスできる範囲はShopify GraphiQLアプリがアクセスできる範囲に限定されます。
したがって、開発をしているShopifyアプリが作成したデータには、GraphiQLからアクセスできない場合があります。
Shopifyアプリ開発をする際はPostmanなどを使って、開発しているアプリのアクセストークンでAdmin APIを利用した方が効率的に作業できるでしょう。
Postmanの使い方はこちらを参考にしてください。
PostmanでShopify Admin APIのクエリを実行・管理する
少し動作が不安定なときがある
Shopify GraphiQLアプリがクラッシュして使えなくなることが何回か発生しました。
(複数ストアを管理するパートナーアカウントでのみ発生するのかもしれません。)
アプリを一度アンインストールして、インストールするとまた使えるようになります。
※ 最新のアプリでは修正されている可能性があります
まとめ
今回はShopify GraphiQLの使い方やメリット・デメリットを解説しました。
手軽にAdmin APIを触れるので、ぜひデモやWorkshopから使い始めてみてください。