TwitterやFacebookなどのWebサービスの中には「API」を公開しているものがあります。
APIとは「Application Programming Interface」の頭文字をつなげたものです。
しかしこの言葉だけでは、どのような概念で、どのように使うのかピンと来ないでしょう。
そこで今回はAPIについて、具体的なサンプルを交えて徹底解説します。
目次
APIとは?
まずAPIの定義をIT用語辞典で確認しましょう。
APIとは、あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約のこと。
この定義からだけでは、いまいちわかりにくいですね。
ポイントは「外部の他のプログラムから呼び出して」という部分。ここがAPIの肝です。
例えばTwitterにはいくつかのクライアントプログラムが多数公開されています。
具体的には以下のものがそうです。
- TweetDeck
- HootSuite
- Janetter
- Tabtter Free
- Crowy
ここで紹介したTwitterのクライアントは、Twitterが管理しているデータを、外部からアクセスすることで動作しています。
しかしTwitterは何も全てのデータにフルアクセスできるように公開しているわけではありません。
Twitterは予め決められた方法で、必要なデータのみを外部からアクセスできるように公開しているにすぎません。
そしてそのデータを必要とするクライアントはTwitterが提供しているAPIを利用しているにすぎません。
このように使い方にルールが決められている点がAPIの大きな特徴です。
「公開されているAPI」と「APIを利用するプログラム」の接点となるのが「Interface(インターフェース)」です。
これは「窓口」のようなものをイメージするとよいでしょう。
例えばTwitterのタイムラインを自分のブログに表示させたい場合を考えましょう。
Twitterには特定のアカウントのタイムラインを公開するためのAPIがあり、外部の開発者は自分のブログのサイドバーに、Twitterのタイムラインを取得するためのプログラムを「TwitterのAPI」を使って開発します。
つまりTwitterはタイムラインを公開するためのAPIを、あたかも「窓口」のように提供しており、外部の開発者はその「窓口」からタイムラインを表示させるためのTwitterのAPIを利用するというわけです。
APIの使い方にはルールがある
Twitterの例を取り上げましたが、APIにはルールがあります。
なんでもかんでも自由に使えるようにしてしまうと、APIを公開している大元のサービスが不安定になったり、セキュリティの観点から危険な状態になったりするからです。
多くのAPIには「この機能はこのような方法で使ってください」「このような使い方はできません」「1時間にXXXX回しかAPIを使えません」など使い方に対してルールと制限があります。
もしこれらのルールと制限を無視してしまうと、正常にAPIを使えなくなるだけでなく、APIを使うためのアカウントがBANされてしまうこともあります。
特にAPIの利用制限については注意が必要です。
例えばTwitterに関しては昨年、こんな記事が公開されました。
Twitter APIの新しいレート制限、導入は10月22日へ延期 ~緩和希望は10月17日までに審査を
https://forest.watch.impress.co.jp/docs/news/1141246.html
Twitter APIの新しい制限として、
- ツイートおよびリツイート(合算値):3時間で300件
- いいね:24時間で1,000件
- フォロー:24時間で1,000件
- ダイレクトメッセージ:24時間で15,000件
Twitter APIを使っているプログラムのほとんどには影響がなかったこのアップデートでしたが、一部の大規模なTwitterクライアントには、このAPIの制限緩和のための手続きが必要になりました。
APIを使うメリット
APIを使う3つのメリットについて説明します。
アプリケーションを効率的に開発できるようになる
たとえば自社のWebサービスに対してログイン認証の機能が必要な場合、すでに存在しているFacebookやTwitterなどのログイン認証機能をつかうことで、アプリケーション開発の工数を削減でき、効率的になります。
これは「シングルサインオン」と呼ばれる技術です。
ログイン認証周りの実装はセキュリティの観点からも難易度が高く、安全な実装には手間と時間が必要です。
しかし、すでに動作しているFacebookやTwitterのログイン認証を活用することで、セキュリティレベルの高いログイン認証が実装できるだけでなく、自社内でユーザー管理をする手間も省けます。
自社でデータの管理をしなくても済む
例えばAmazonで販売されている商品の情報をAPIを使って取得し自社サイトに掲載する時、Amazonに登録されている商品の価格が変わってしまっても、API経由でデータを取得していれば、自動的に自社サイトで掲載されている価格情報も更新されます。
これがもし、Amazonで販売されている商品の情報を、目視で確認して価格情報を自社サイトに転記していた場合を考えてみましょう。
この場合、価格などの情報の変更があるかどうか、毎日チェックして、もし変更があった場合は、自社サイトの情報をいちいち書き換える必要があります。
これはすごく面倒ですよね。
しかしAPIを使って情報を取得していれば、常に最新の情報が自社サイトに掲載されるので、毎日のチェックが不要になり、情報に変更があっても書き換える必要はありません。
あるWebサービスのAPIと別のWebサービスのAPIを組み合わせて全く別のWebサービスが作れる
あるWebサービスのAPIと別のWebサービスのAPIを組み合わせて、全く別のWebサービスの開発が可能になります。このような開発を「マッシュアップ」と言います。
例えばインターネット上に本棚が作れる「ブクログ」というサービスがあります。
ブクログ
https://booklog.jp/
ブクログではユーザー別に仮想の「本棚」が用意されて、ユーザーはそこへ自由に本を追加できます。
ブクログではAmazonのAPIだけでなく、他の書店のAPIも使われており、本の詳細検索機能で確認できます。下の画像をご確認ください。
例えば電子書籍の検索画面では「Kindle」だけでなく「honto」や「DMM.com」などの電子書籍からの検索も可能です。
このようにブクログでは、様々な書籍の販売元のデータを使って、仮想の本棚を作ることができます。これもマッシュアップの一例です。
API使用時の注意点
便利なAPIですが、注意点もあります。公開されているAPIの機能や制限が、公開元の都合によって大きく変更される場合があるという点です。
最近だとGoogle Map APIの仕様変更が大きな話題となりました。
「Google Maps」仕様変更、一部サイトで非表示に? APIキーの取得忘れに注意
https://www.itmedia.co.jp/news/articles/1806/11/news126.html
このGoogle Map APIの変更では、これまで無料で使用できていたAPIについて、従量課金制が導入され、さらにAPIの利用についてAPIキーの登録が必須となりました。
このようにAPIは公開元のWebサービスの都合によって、使い方や制限、機能などが変わってしまう可能性があります。
これはAPIを利用している側の立場ではどうすることもできず、もしAPIの仕様変更があった場合には、アプリケーションの開発方法や機能などを変更して対応するしかありません。
まとめ
APIについて詳しく解説してきました。個人的にAPIを使う最大の魅力は、記事中でも紹介した「マッシュアップ」だと思います。
様々なWebサービスのAPIを組み合わせれば、これまでに全くなかった別のWebサービスの開発も可能になります。
APIの具体的な使い方については、ここでは紹介できませんでしたが、それほど難しいものではありません。
アイデアや工夫次第でオリジナルのWebサービスの開発ができるAPI。ぜひチャレンジしてみてくださいね。
こんにちは、ランキングから来ました。
私のまだ知らない世界なので、すごく参考になりました。
ありがとうございました。
ありがとうございます!
お役に立てて良かったです。
こんにちは。ブログランキングから来ました。まだインターネットに疎いので大変勉強になりました、ありがとうございます。