ついに、eBay API実践講座・初級前半の最終話です。
皆さん、号泣の上に号泣を重ね、涙も枯れ果てていることでしょう。
この10話で目指してきたのは、コードを詳しく解説することではありません。用意されたツールを使いながら、自分はいまAPIへ情報を頼み、返ってきたデータを使っていると意識できるようになることです。
eBay APIは一つではありません。大きく見るとTraditional APIs(従来型API)とRESTful APIsがあり、さらに同じTrading APIの中にも、目的の異なる複数の呼び出しがあります。欲しい情報や実現したい作業から、使うAPIを選ぶことが大切です。
今回わかること
- Trading APIとRESTful APIsの違い
- 同じTrading APIでも呼び出しごとに取得できる情報が違うこと
- 現在のツールへ追加できる項目と、追加できない項目の違い
- 初級前半を終えたあと、何を意識してAPIを使えばよいか
第9話では、Watch数と出品期間を組み合わせた分析まで進みました。今回は、そのデータを返してくれたAPIの正体を少し広い視点から見ていきます。
この講座で使ったのはTrading API
この講座のツールが商品データの取得に使っているのは、eBayのTrading APIです。
Trading APIは、eBayがTraditional APIs(従来型API)として案内している仕組みの一つ。XML形式のリクエストとレスポンスを使い、出品の作成・管理、商品情報の取得、注文関連の処理などを行えます。
第6話以降に動かしたツールでは、そのTrading APIに含まれるGetMyeBaySellingという呼び出しを使っています。
GetMyeBaySellingは、認証したセラー本人の出品中・販売済み・未販売商品などを一覧で取得するためのもの。だから、タイトル・価格・Watch数・StartTimeといった複数商品の情報をまとめて並べる用途に向いています。
もう一つの系統・RESTful APIs
eBayには、Traditional APIsとは別にRESTful APIsがあります。
Sell APIs、Buy APIs、Commerce APIsなど目的別のAPI群が用意され、JSON形式のデータやOAuth認証を中心に利用します。
| 比較 | Trading API | RESTful APIs |
|---|---|---|
| 位置づけ | Traditional APIsの一つ | 比較的新しい目的別のAPI群 |
| 主なデータ形式 | XML | JSON |
| 機能の探し方 | GetItemなど呼び出し名から選ぶ | Sell・Buy・CommerceなどAPI群から目的別に選ぶ |
| 認証 | 呼び出しや実装に応じたトークンを使用 | OAuthアクセストークンを使用 |
| 考え方 | RESTにない機能を含む場合がある | 新しい連携では、まず目的に合うREST APIを探す |
これは「古いAPIは全部だめ」「新しいRESTなら完全解決」という話ではありません。
eBay公式も、まず目的に合うRESTful APIを確認し、必要な機能が提供されていない場合はTraditional APIを検討するよう案内しています。eBay公式のAPI概要も、どの系統を使っているのか確認するときの入口になります。
ネット上の解説ではTrading APIとRESTful APIsの話が混ざっていることもあります。「いま、どのAPIの話をしている?」と意識するだけで、情報をかなり整理しやすくなります。
同じTrading APIでも取得できる情報が違う
さらに大切なのが、Trading APIという同じ系統の中でも、呼び出す機能によって取得できる情報が違うという点です。
| 呼び出し | 得意なこと | イメージ |
|---|---|---|
| GetMyeBaySelling | 認証したセラーの複数商品を一覧で取得する | 広く一覧を見る |
| GetItem | 一つの商品について、説明・カテゴリー・配送など詳しい情報を取得する | 一件を深く見る |
今回のツールにTimeLeft(残り時間)を追加することはできます。GetMyeBaySellingのレスポンスにTimeLeftが用意されているからです。
一方、現在のGetMyeBaySellingツールへ、同じ書き方でPrimaryCategoryのCategoryIDを追加しようとしても取得できません。その項目が、いま受け取っているGetMyeBaySellingの一覧データに含まれていないためです。
マックに行って、モスチーズバーガーくださいと言っても出てこないのと同じ。
CategoryIDや商品説明などを詳しく取得したいなら、GetItemなど、その情報を返せる別の呼び出しを検討します。ただしGetItemは基本的に一件ずつ取得するため、複数商品へ使うなら呼び出し回数や処理方法も考えなければなりません。
つまり「コードに項目名を書けば、eBayのあらゆるデータが出てくる」わけではないのです。
欲しい情報からAPIを選ぶ
APIを使うときは、次の順番で考えます。
- 何をしたいのか決める
- そのために必要な情報を決める
- その情報を返せるAPIと呼び出しを探す
- 認証方法・取得件数・利用制限・データ形式を確認する
- 取得したデータを、判断や作業へつなげる
仕入れのときに商品を選ぶように、「このデータを取るなら、どのAPIが効率的か」を選ぶわけです。
これが分かれば、ツールをただの魔法箱として見るのではなく、何をAPIへ頼み、何を返してもらうツールなのかを考えられます。
メルマガ読者向け:ツール改造の入口
第10話のメルマガでは、第7話で配布したツールへTimeLeftを追加する方法を案内しています。
変更するのは、取得項目の一覧と、APIレスポンスから値を取り出す処理の2か所。コードそのものを深く解説する講座ではありませんが、「APIに存在する項目を、自分のツールへ追加する」という最初の改造を体験できます。
メルマガを受け取っている方は、案内されたパスワードで読者限定の補足記事を確認してください。パスワードは公開記事には掲載していません。
まだ登録していない方は、eBay API講座のメルマガ登録ページから参加できます。
初級前半でできるようになったこと
- eBay Developer Programへ登録した
- SandboxとProductionの違いを理解した
- 認証情報を安全に設定し、APIへ接続した
- 自分の出品データをGoogleスプレッドシートへ取得した
- 取得する項目と件数を選んだ
- StartTimeやWatchCountを販売判断へ使った
- 目的によってAPIや呼び出しを選ぶ必要があると理解した
コードが書けるようになったかどうかではありません。
APIを意識して、ツールの裏側で何が行われているかを考えられるようになった。
ここまで来たなら、この初級前半の目的は達成です。
この講座で伝えたかったこと
世の中には多くのECツールがあります。
目的の機能がない、機能が弱い、反対に使わない機能が多すぎる。そんなとき、ツールの中身を完全に理解していなくても、APIを意識できれば見方が変わります。
- このツールは、どの情報を取得しているのか
- 自分に必要な機能は本当に揃っているのか
- いま持っているツールと、新しいツールは本当に違うのか
- 売れない原因は、本当にツールなのか
ノウハウコレクターならぬ、ツールコレクターになる必要はありません。
APIは特別な技術ではなく、もっと楽に、もっと効率よく仕事を進めるための道具です。
APIを意識する。それで世界が変わる。
初級前半のまとめ
- eBay APIにはTraditional APIsとRESTful APIsがある
- この講座ではTraditional APIsの一つ、Trading APIを使った
- 同じTrading APIでも、呼び出しによって取得できる情報が違う
- 欲しい情報と目的から、使うAPIを選ぶ
- ツールを使いながらAPIを意識できれば、初級前半の目的は達成
この先は、GetItemで一件の詳しい情報を取得するなど、もう一段深い世界へ進めます。
初級前半、ここまでお疲れさまでした。
俺たちの冒険はこれからだ!
おそまつまつ!

コメント