目次
Web APIとは「Webサービス開発を効率化するツール」です
APIはApplication Programming Interfaceの頭文字をとった言葉です。
Wikipediaなどを見てみると
ソフトウェアコンポーネント同士が互いに情報を やりとりするのに使用するインタフェースの仕様である。
と書いてあります。
なのでWeb APIの説明は
Webにつながっているソフトウェアコンポーネント同士が互いに 情報をやりとりするのに使用するインタフェースの仕様である。
と言えそうです。
ただし全く知識のない方からすると「は?」という感じですよね。
ものすごく簡単にWeb APIを説明すると、『公開されているWebアプリの機能の一部を使用できるツール」』です。 つまり開発を効率化するツールです。
ただしこれでは若干抽象的なので、折角ならきちんと理解したいですよね。
この記事では
を紹介します。 是非最後まで読んでWeb APIの理解を深めてください。
Web APIを使う理由
Webサービスを開発する際、「こんな機能が実装できたらいいな」 と思う時があります。
ただし自分達で全てを作るにはお金と時間がかかります。 一から全ての機能を開発していては効率が悪いです。
そこでもし使用可能な公開されているサービスがあれば、 使用することで開発期間を短縮できます。 既に稼働しているサービスは運用実績があるので、 セキュリティ面でも一から開発するよりも信頼できます。
そこでWeb APIが登場します。
Web APIを利用することで、他のプログラムが提供している サービス機能の一部を自分たちのサービスでも利用することができます。
結果としてその機能を開発する期間を省略することができます。
ここまで抽象的な話でしたので、もう少し具体的に説明しましょう。
【具体例】株価表示Webサービスを作る
例えば最新の株価を表示するWebアプリを作るとします。
この時、株価のデータをどうやって集めると効率的でしょうか?
例えば1分ごとに自分で全ての株価を調べて、データベースを更新するのでしょうか?
またはわざわざ株価が表示されるサイトをスクレイピングして情報を取得するのでしょうか? その場合、参照しているサイトの構成が変更されたら情報を取得できなくなるリスクがあります。
この様に、自分たちで情報を取得するというのはあまり効率が良くないことが多いです。
そこで株価を取得できるWeb APIを使用します。 そうすればプログラムを定期的に実行するだけで、 Webアプリに表示される株価が更新できます。
株価を取得することのできるWeb APIですとYahoo Financeなどがあります。 ドキュメントに記載されている手順でリクエストを出すことで、株価の情報を取得できます。
この様にWeb APIを用いて他のサービスを利用することで、 処理の自動化・開発の効率化が実現できるのです。
ではWeb APIとは実際どの様な要素で構成されているのでしょうか?
Web APIの構成要素
ここでは簡単にWeb APIの構成要素について説明します。
基本的に登場する要素は以下の2つです。
クライアントはサーバーが決めた通信ルールに則ってリクエストを送ります。 この時使用したい機能や取得したい値を指定します。
リクエストを受けたサーバーは要求された情報を クライアントにレスポンスとして返します。
基本的なやりとりの流れは以上の様にシンプルです。
ただしセキュリティ面から、たいていのAPIはデータのやりとりの前に 認証作業等が入りますが、ここでは割愛します。
Web APIの「エンドポイント」とは
Web APIには必ずドキュメント(使い方が書いてある説明書の様なもの)が存在します。
そこでは度々エンドポイントという用語が登場します。
Web APIを使用する際には特定のコマンドを叩く必要があります。 その時にインターネット上ではサーバーを特定するためにURIを指定する必要があります。 Web APIではこのURIをエンドポイントと読んでいます。
ですのでエンドポイントという単語に出会ったら、 「このURIを使ってWeb APIを使うんだな」と思ってください。
Web APIの具体例
世の中には数え切れないほどのWeb APIが公開されています。
ここではそんなWeb APIの中でも日本で特に人気のAPIをいくつか紹介します。
Google Maps Geocoding
Google Maps Geocoding:ドキュメント (googlecloud) | Rakuten RapidAPI
地図を表示するアプリですと結構使われています。
地図表示機能を一から作成するというのはかなり大変ですので、まさにWeb APIを使うべき機能ですね。
ぐるなびレストラン検索
ぐるなびレストラン検索 API Documentation (gurunaviws) | Rakuten RapidAPI
Web APIを使うことで、ぐるなびに掲載されている飲食店の情報を取得できます。
ぐるなびは割と古くからあるサービスですので、掲載されている飲食店舗数も多く、利用価値の高いWeb APIと言えます。
またこういった情報を公開することで、飲食店の宣伝にも繋がりますね。
amazon-price
amazon-price API Documentation (ebappa1971) | Rakuten RapidAPI
国内で訳5000万人が使用していると言われるAmazonに掲載されている商品の価格などの商品情報を取得できます。
Google Translate
Google Translate:ドキュメント (googlecloud) | Rakuten RapidAPI
翻訳は現在Googleの一人勝ちという印象の分野ですが、そのGoogleの翻訳機能を使用できるのはすばらしいです。
翻訳などの機械学習で実装される機能は情報量が多くないと中々精度が上げられず、また実装難度もかなり高いと思いますので、翻訳機能を実装する際には積極的に使用したいWeb APIです。
Yahoo Finance
Yahoo Finance API Documentation (apidojo) | Rakuten RapidAPI
前述の説明でもチラッと出てきたWeb APIです。
株価や相場などを取得することができます。
この様にWeb APIには様々なものが公開されており、 サービスを実装する際には「公開されているAPIで使用できるものはないか?」 と考えることで開発効率を上げることができます。
まとめ
最後にこの記事で紹介した情報をまとめます。
- Web APIとは?
- Webサービス開発を効率化するツール
- Web APIを使う理由
- Webサービスの開発を効率化できる
- Web APIの構成
- クライアントとサーバー
- エンドポイントとは?
- Web APIの具体例
- Google Maps Geocoding
- ぐるなびレストラン検索
- amazon-price
- Google Translate
- Yahoo Finance
- ...
Web APIについて理解は深まりましたでしょうか?
実際にWebサービスを開発する上でWeb APIの知識は必ずと言っていいほど必要になりますので、早い段階で身に付けて、開発を効率的に進めましょう!