Shopify REST API から GraphQL API への移行で知っておくべきこと
Shopify API を使っている方はご存じかもしれませんが、昨年末に Shopify が REST API をレガシーステータスに移行することを発表しました。
この記事では、GraphQL スキーマの使い方を解説します。先に結論をお伝えすると、実は大きな変更はありません。CData ドライバーは API の種類に関わらず、Shopify GraphQL データを表形式のデータとしてモデル化します。引き続き SELECT * From Orders のようなクエリをドライバー経由で実行できます。2025 リリースでは、REST から GraphQL スキーマへのスムーズな移行をサポートするため、多くのオブジェクトやカラムを追加しました。
REST Admin API のレガシーステータスについて
まず、REST API と GraphQL API について確認しましょう。現在、注文や商品などの Shopify 管理データにアクセスできる API は「REST Admin API」と「GraphQL Admin API」の2種類があります。REST Admin API は長年提供されており、多くのユーザーに利用されていますが、GraphQL Admin API のリリース以降、Shopify は GraphQL の使用を推奨しています。
2024年10月1日をもって、REST Admin API のステータスは「レガシー」となりました。現時点では REST Admin API を引き続き使用できますが、GraphQL への移行が推奨されています。なお、具体的な廃止日はまだ決定しておらず、この記事の執筆時点では REST Admin API は引き続き利用可能です。
GraphQL とは
それでは、GraphQL について見ていきましょう。GraphQL は Facebook が提唱した新しい API 標準で、現在は GraphQL Foundation が推進しています。REST API が一般的に HTTP の特性に基づいて実装されるのに対し、GraphQL は独自のクエリ言語を使用して階層構造でデータを取得します。

私たちの解釈では、Facebook の UI のように複数のリソースが画面上に散在するデータを取得・表示したい場合に真価を発揮する API 仕様です。リソースを個別に取得する REST API 仕様とは大きく異なります。
CData ドライバーでモデル化すれば REST も GraphQL も関係ない
CData Shopify ドライバーは REST Admin API だけでなく、GraphQL Admin API もサポートしています。ドキュメントでは REST スキーマと GraphQL スキーマの両方を確認できます。

REST Admin API のレガシーステータス発表を受けて、ドライバーのデフォルト API は GraphQL に変更されました。通常、GraphQL Admin API を使用する場合は、GraphQL の仕様、データ構造、データアクセス時の API クエリコストを意識する必要があります。しかし、CData Shopify ドライバーを使用すれば、Tableau や Power BI などを利用する BI ユーザーにとって扱いやすい表形式のデータモデルに自動変換されます。REST API と GraphQL の違いを意識する必要はありません。
REST API ベースの Orders テーブルサンプル:
例えば、Orders テーブル - 下の画像は REST Admin API で取得した場合のデータモデルを示しています。

GraphQL ベースの Orders テーブルサンプル:
GraphQL Admin API でも同様にテーブル構造でデータを取得できます。GraphQL の提供方法に基づいてテーブル数やフィールド数が異なるため、注意が必要です。

また、GraphQL のメカニズムで最も難しい点は、おそらく API リミット/クエリコストでしょう。GraphQL では、取得したいフィールドに応じてクエリコストが変動します。さらに、リクエストベースのコストと実際の取得結果ベースのコストにギャップが生じることがあり、計算が複雑になります。CData Shopify ドライバーは、大規模データ取得に最適化された Bulk API を内部で自動的に使用する機能を備えているため、GraphQL 固有のクエリコストルールを意識することなくデータを活用できます。

Shopify GraphQL スキーマの使い方
ここでは Power BI Connector for Shopify を例に説明します。Power BI Connector はこちらからダウンロードしてください。
ステップ1:Shopify GraphQL に接続する DSN を設定する
インストール後、DSN 設定ウィンドウを開き、以下の接続プロパティを設定します:
- Shop URL:お使いの Shop URL
- Auth Scheme:OAuth またはアクセストークンのいずれか
- Access token(このサンプルの場合):お使いのアクセストークン
- Schema:GRAPHQL-yyyy-mm を選択
「Test Connection」をクリックします。

ステップ2:クエリをテストする
コネクタには接続テスト用のパネルが含まれているため、事前にどのようなデータが取得できるかテストしておくとよいでしょう。ここから利用可能なフィールドも確認できます。

「Query」タブでは、実際に SQL を発行してデータ取得結果を確認できます。
SELECT * FROM "CData"."GRAPHQL-2024-10"."Orders"

ステップ3:Power BI から接続する
この後の操作は、Power BI から Shopify に接続する場合と全く同じです。データソースとして「CData Shopify」を選択します。

ナビゲーターに GraphQL スキーマで使用できるテーブルが表示されます。分析したいテーブルを選択して Power BI にインポートします。

詳細情報と無料トライアル
CData ドライバーを使用すれば、内部実装の変更や API 仕様を意識することなく、お気に入りの BI ツールや Excel から Shopify データを活用できます。
CData Drivers and Connectors for Shopify の詳細をご覧いただくか、30日間の無料トライアルをダウンロードして、CData の違いをぜひ体験してください。