関連記事
WebAPIで他のサービスと連携する
この記事の動画版はこちら(画像クリックでYoutubeに飛びます)
WebAPIとは何か?
WebAPI(ウェブエーピーアイ)とは、あるWebサービスの機能を、他のサービスやアプリから使えるようにするための仕組みです。
現在、さまざまな有名WebサービスがWebAPIに対応しています。
例えば、Twitterです。
iPhoneやAndroidにはTwitter系のアプリがたくさんありますよね。
しかし公式のアプリは1つだけです。
なぜ、他の非公式のアプリがTwitterの機能を提供出来るのでしょうか?
それは、TwitterがWebAPIで自身の機能を公開しているからなんです。
「ツイートを投稿したいなら、このプログラムをコールしてね」
「タイムラインの一覧を表示したいなら、このプログラムをコールしてね」
といった形で、Twitterの機能を外部から使う際の「取り決め(インターフェース)」が一般の開発者に向けて公開されています。
これがTwitterのWebAPIです。(略して「Twitter API」と呼ばれます)
ちなみに、APIとは「Application Programming Interface」の略で、「異なるWebサービス同士を連結するための取り決め」といった意味になります。
非公式のTwitterアプリは、このAPIを利用してTwitterの機能にアクセスしているという訳です。
つまり、このTwitter APIを使うことにより、あなたも自分のアプリやサービスにTwitterの機能を組み込むことが出来るということです。
WebAPIを使えばこんなことが出来る
Twitterの他にも、YoutubeやGoogle、Amazonや楽天、Facebook、Instagram、LINE、ブログ、天気予報サイト、グルメサイトなど、多くのWebサービスがWebAPIに対応しています。
WebAPIを使うことで、例えば、
・自分のWebサービスの更新情報を複数のSNSに自動投稿する。
・楽天市場やAmazonの商品情報を取得して比較表示する。
・ぐるなびの店舗情報に独自のマッチング機能を追加してお店を見つけやすくする。
・特定のジャンルのYoutube動画やツイートを自動取得してまとめサイトを作る。
このようなことが可能になります。
WebAPIを活用することで、僕らWebプログラマーはこういった各種Webサービスの機能を自由に組み合わせて、オリジナルのWebサービスを構築することが出来るのです。
WebAPIの仕組み
WebAPIの仕組みはとてもシンプルです。
①使いたい機能を呼び出して
②結果を受け取る
これだけです。
処理を行うために「材料」が必要な場合は、呼び出す際に一緒に渡します。
例)Twitter APIの呼び出しイメージ
これって、何かに似ていませんか?
そう、関数の呼び出しにそっくりですよね。
WebAPIは、Web(インターネット)経由の関数のようなものです。
ただし、同じプログラミング言語で作成されている関数とは異なり、WebAPIはWeb経由で様々なプログラム言語から呼ばれるため、
【APIの呼び出し】GET/POST形式の標準Webリクエスト方式
【APIの結果返却】JSON/XML形式の標準データフォーマット
このような形で標準化されています。
このやりとりの方式のことを「REST」といいます。
WebAPIの使い方はリファレンスで確認
WebAPIにも関数リファレンスと同じように「APIリファレンス」と言うものが各社から公開されており、プログラマーはこれを見ながら必要なものを実装していきます。
例)Twitterでツイートする際のAPIリファレンス
ここには、関数リファレンスと同じように、呼び出す際に必要な「引数(パラメータ)」や「戻り値(レスポンス)」の仕様が記載されています。
Twitter APIのリファレンス
https://developer.twitter.com/en/docs/api-reference-index
なお、基本的にWebAPIを利用するためには開発者登録を行う必要があります。
利用登録を行うと、自分専用の「開発者キー」が発行され、プログラムからWebAPIにアクセスする際はこのキーを指定する形になります。
なお、WebAPIは、サービスによって有料の場合や、利用回数などに制限がある場合もありますので、実際に使用する際には事前に各APIの説明を確認するようにしましょう!
有名サービスが実現出来ない「新たな価値」を創り出す!
このように、有名なWebサービスは大抵WebAPIを公開しており、そのサービスが扱っているデータに自分のプログラムからアクセスすることが可能です。
WebAPIを公開しているサービス側も、多くの開発者に使ってもらうことで、自社のコンテンツがより広がり、増えていくことが期待出来ますので、まさにWin-Winの関係になっています。
Webサービスというのは、基本的に「そこに集まるデータ(コンテンツ)」にこそ価値があり、機能はそのデータをいかに便利に扱うか、という手段に過ぎません。
例えば、Amazonや楽天には「商品」というデータ大量に蓄積されており、ユーザは商品を探すためにAmazonや楽天のサイトを訪れます。
・Amazonや楽天には「商品データ」
・TwitterやInstagram、ブログなどのサービスには「投稿内容」
・ホットペッパーやぐるなびなどのサービスには「店舗情報」
・Googleには「世界中のWebサイト」
このように、Webサービスには価値のある「コンテンツ」があります。
これらのコンテンツをゼロから蓄積していくことはとても大変ですが、WebAPIを使えば、これらの価値を組み合わせて、かゆいところに手が届く「新たな価値」を創り出すことが出来ます。
例えば、Amazon単体だとAmazonの商品しか検索出来ませんが、楽天とAmazonの商品を横串で検索出来るようなサービスがあれば、ユーザは自分に合った商品をよりお手頃価格で見つけることが出来るようになります。
また、画面から一度投稿するだけで、Twitter、Facebook、ブログなどの各種サイトに一括投稿出来るサービスがあれば、複数のSNSを使っているユーザーは便利ですね。
これが「新たな価値」です。
WebAPIを使えば、こういったオフィシャルが実現出来ない新たな価値を生み出せます。
WebAPIを使えるようになると、開発出来るWebサービスの幅がぐんと広がります。
上手に活用して大手サービスをも凌ぐ価値のあるサービスを作っていきましょう!