はじめに
こんにちは。
最近shopifyを触る機会があったので、自分の頭を整理することもかねてAPIの叩き方を備忘録がてら残しておこうと思います。
shopifyはいくつかのAPIを提供していますが、その中でも今回は基本となる admin APIと storefront APIの叩き方についてまとめていきます。
今回はpostmanを使ってAPIを叩いてみます。
前提
- shopify partnersにアカウントを作成済みであること
- ストアが作成済みであること
- ストアにshopifyアプリをインストール済みであること。
試すだけならプライベートがお手軽です。
目次
- admin APIを叩く
- storefront APIを叩く
- 注意点
- 最後に
叩いてみる
admin APIを叩く
admin APIは GraphQLとRESTの形式でAPIを提供しています。それぞれのAPIを叩くためにはストアにインストールしてあるアプリで発行した APIキーや パスワードが必要になるので確認できるよう、事前にストアにログインしておきましょう。
上記キーはストアにログインし アプリ管理>インストール済みのアプリを選択した先で確認できます。
GraphQLの場合
設定はこんな感じです。
- URLは${store_domain}を自分のストアのドメインに置き換える
- Headerを二つ追加
- Content-Type : application/json
- X-Shopify-Access-Token : AdminAPIのパスワード
- BodyでGraphQLを選択し、希望のクエリをコピペ(必要に応じて変数も)
結果例
{"data":{"shop":{"name":"${store_domain}","primaryDomain":{"url":"https://${store_domain}","host":"${store_domain}"}}},"extensions":{"cost":{"requestedQueryCost":2,"actualQueryCost":2,"throttleStatus":{"maximumAvailable":1000.0,"currentlyAvailable":998,"restoreRate":50.0}}}}
RESTの場合
設定はこんな感じです。
- URLは${store_domain}を自分のストアのドメインに置き換える+使いたいAPIのURLを指定する
- AuthorizationはBasic Authを選択し以下の情報を入力する
- Username : AdminAPIのAPIキー
- Password : AdminAPIのパスワード
結果例
{"orders":[{"id":0000000,"email":"${customer_email}","closed_at":null,"created_at":"2021-02-04T04:23:09-05:00","updated_at":"2021-02-04T04:23:10-05:00","number":3,"note":"",(長いので省略)}]}
storefront APIを叩く
storefront APIはGraqhQLの形式のみでAPIを提供しています。
またストアの管理画面から確認できるアクセストークンをリクエストと一緒に渡すことでAPIを利用することができます。
GraphQLを叩く
設定こんな感じです。
- URLは${store_domain}を自分のストアのドメインに置き換える。admin APIに比べてdomainの後ろが一つPATHが少ないです。
- Headerを二つ追加
- Content-Type : application/json
- X-Shopify-Storefront-Access-Token : storefrontのアクセストークン
結果例
{"data":{"shop":{"name":"${store_domain}","primaryDomain":{"url":"https://${store_domain}","host":"${store_domain}"}}}}
注意点
Admin APIを叩く際の注意点
- APIキーとパスワードはストアにインストールしているアプリから取得してください。(shopify partnersの方でも作れますがそっちじゃないです)
- 間違ったリクエストを送ってpostmanにキャッシュが残っているとリクエストに失敗することがあります。
めも
最初に載せたスクショに URLの例とありますが、こちらをそのままブラウザで叩くだけでもレスポンスを取得できます。https://{apikey}:{password}@{hostname}/admin/api/{version}/{resource}.json
最後に
今進行しているプロジェクトがshopifyを使ったものになっているので、今後もまたこんな記事を書くと思います。
それではまた。