Tsun Inc. CTOの小笠原です!
今回はShopify APIをPostmanで簡単に実行するノウハウをまとめました。
Shopify APIに限らずですが、毎回コンソールからAPIを実行して確認するのって意外と手間ですよね。
そういうときはPostmanというアプリを使って環境情報等をまとめておくとサクッと実行・確認ができますよ!
Postmanとは
PostmanはAPIを開発・テストすることに特化したコラボレーターツールです。
Postman とは、APIを開発・テストするためのコラボレーションプラットフォームです。
Postmanでは、Tokenなどを設定し、APIのエンドポイントにリクエストを投げ込めば Response(レスポンス)を確認することができます。
現在 Postman には、HTTP や REST、SOAP、GraphQL などのリクエストテストや、API design、API documentation、API detection、Mock Server、Monitors、Workspaces などの機能が存在します。
Postmanを利用することによってAPI開発が簡略化され作業効率の向上を実現することができます。
前提条件
対象読者
- Shopify Admin APIを使ったことがある
環境
- Postman for Mac Version 10.11.1
Postmanのインストール
https://www.postman.com/ や https://circleci.com/ja/blog/testing-an-api-with-postman/ を参考にサインアップとインストールを行います。
PostmanでShopify Admin APIのクエリを実行する
インストールができたらPostmanを開いて、まずはShopify Admin APIの簡単なクエリを実行してみましょう。
Shopify Admin APIのクエリを実行するためにはAPIのトークンが必要なので、まずはトークンを生成します。
Shopify Admin APIのトークンを生成する
お使いのストアの(開発ストアがいいと思います)管理画面を開きます。
設定 > アプリと販売チャネル から、アプリを開発をクリックします。
アプリを作成をクリックします。
アプリ名はわかりやすく「Postman」などでいいと思います。(Postmanでしか利用しない前提)
アプリが作成されたら、アプリ画面の設定からアクセススコープを設定します。(アクセススコープは最小限にしましょう)
API資格情報からAdmin APIのアクセストークンを取得します。(一度しか取得できないので、1Passwordなど安全な場所に保管しておくことをオススメします)
これで、クエリを実行する準備が整いました。
PostmanでGraphQLクエリを実行する
Postmanを開きます。
Collections > Create new collectionを選択し、新しいコレクションを作成します。(名前は適当に入力します)
コレクションに新しいリクエストを追加できるようになったので、Add requestをしてリクエストを追加します。
GETをPOSTに変更します。
URLは https://{あなたのShopify Domain}.myshopify.com/admin/api/2023-01/graphql.json にします。
AuthorizationタブのTypeをAPI Keyにします。
Keyに「X-Shopify-Access-Token」、Valueに↑で取得したトークンを入力、Add toはHeaderにします。
Bodyタブに下記のクエリを書きます。
query {
shop {
name
currencyCode
checkoutApiSupported
taxesIncluded
}
}
Sendを実行し、shopデータが取得できたら成功です!
変数を使ってリクエストを管理する
今後リクエストが増えてくると、新しいリクエストを作るたびに上記の設定をするのが手間になります。
そこでPostmanの変数機能を使って楽に管理できるようにします。
まずは、APIのバージョンとShopify Domainを変数にします。
コレクションの設定からVariablesタブを開きます。
API_VERSIONとSHOPという変数を追加します。値はそれぞれ任意の値を設定してください。
先程のリクエストのURLを変数を使ったものに変更します。
下記になります。https://{{SHOP}}.myshopify.com/admin/api/{{API_VERSION}}/graphql.json
Sendを実行し、先程と同じデータが取得できることを確認します。
これで、APIのバージョンを変えて試したいときに全リクエストを一つずつ書き換えなくても変数の値を変えれば簡単にテストできるようにになりました!
複数のストアを分けて管理する
2023年7月追記:
コレクションによるストア管理ではなく、PostmanのEnvironments機能を使った切り替えに変更しました。
Environmentsの使い方はこちらの記事がとてもわかりやすいので参考にしてください。
https://qiita.com/yokawasa/items/05913df60aea07395903
Shopifyパートナーであったり、開発ストアと本番ストアがあるストアの方におすすめなのは、複数のストアを分けて管理することです。
コレクションをストア単位にすることで、先程の変数を使ってコレクション配下のリクエストのURLを共通化できます。
またコレクション内のAuthorizationを共通化することもできます。
まずは、コレクションの設定からAuthorizationタブを開きます。
TypeをAPI Keyにし、Key、Valueはさきほどと同じものを入力します。
各リクエストのAuthorizationタブを開きます。
TypeをInherit auth from parentにします。
これでコレクションのAuthorizationを参照するため、API Keyを変更する場合に全リクエストを書き換える手間がなくなります。
GraphQL APIとREST APIを分けて管理する
Shopify Admin APIにはGraphQL APIとREST APIの2種類があります。
好みの問題ですが、コレクション配下にGraphQLフォルダとRESTフォルダを作成し、それぞれのAPIリクエストを分けて管理することもできます。
まとめ
今回はPostmanを使ってShopify Admin APIを管理する方法をご紹介しました。
PostmanはGraphQLのスキーマを自動でフェッチする機能もあります。
GraphQLのクエリを書く際に自動補完が効くためクエリがとても書きやすくなります。
それでは、みなさんもPostmanを使って快適なShopify Admin APIライフをお送りください!