はじめに
こんにちは。Tsukasaです!
先日学生時代の友人と飲みに行った時に「APIって何?」と聞かれました。
その友人は非IT系の会社に勤めていて、社内でのシステム導入における説明会でAPIという言葉を何回も繰り返し聞いたとのことでしたが、何なのかさっぱりわからなかったと言っていました。
私は「サイトを作るのに全てを1から作らずに、使えるものを使う(Google Mapとか)時に定められてる取り決め?」みたいな感じで説明しました。
この説明自体は間違ってはいないかと思いますが、理解できる人には理解できても、特に非IT系の方には理解が難しい説明ではないかなと感じました。
そこで今日はAPIを身近なものに例えて誰が聞いてもわかる説明をできるようにしたいと思います!
そもそもAPIとは
API(Application Programming Interface)は、ソフトウェアやプログラム同士がデータや機能を共有・連携するための窓口・接続点です。自社サービスに他社機能(Googleマップ等)を簡単に組み込めるため、開発効率化や機能拡充に不可欠です。特にWeb経由で連携する「Web API」が現在の主流です。
こちらのサイトがわかりやすかったので、是非ご参照ください。
ただ上記の説明だとIT系の方なら理解できるかと思いますが、非IT系の方や普段あまりITに触れる機会のない方には難しいかと思います。
それなので今回はAPIをカレー屋さんに例えて見ていきたいと思います!
APIをカレー屋さんで例えてみた
あなたはカレー屋さんのオーナーです。
新メニューとして最高に美味しいカレーの開発をしていましたが、自分では作ることのできないスパイスが必要になりました。
そこに何とカレー屋さんの隣町に偶然スパイス専門店がオープンしました。
オーナーであるあなたはこのスパイス専門店で秘伝のスパイスを仕入れることにしました。
あなたはこのスパイス専門店と話をして、週に1回スパイスをお店に届けてもらう契約をすることにしました。
スパイスの注文方法はメールです。
あなたはこのメールにほしいスパイスの種類(名前)と必要な数量を記入してメールを送ります。
そうするとスパイス専門店はこのメールを注文として確認をして週に1回決められた日に宅配業業者を通じてあなたのカレー屋さんに送ります。
あなたはスパイスを1から作ることはせずにスパイス専門店から仕入れています。
そしてスパイスを仕入れるためのルールをスパイス専門店が作りました。
そのルールとは上記に記載のある必要なスパイスの種類と数量をメールで送ることです。
スパイス専門店はメールを確認したら、注文(リクエスト)のあったスパイスをカレー屋さんに送ります。
注文のメールと注文を受けてスパイスを送る。カレー屋さんとスパイス専門店を繋ぐこの役割がAPIです!
先程APIとは「ソフトウェアやプログラム同士がデータや機能を共有・連携するための窓口・接続点です。」と説明しました。
今回はスパイス専門店が(ソフトウェアやプログラム)が秘伝のスパイス(データや機能)をカレー屋さん(ソフトウェアやプログラム)に販売(共有・連携)するための窓口を注文のメールとスパイスを届ける業者が担当しています。
APIがないカレー屋さんはどうなる?
それではAPIがなかった場合のカレー屋さんはどうなるのか見ていきたいと思います。
あなたは最高に美味しいカレーを開発するために秘伝のスパイスが必要です。
しかしそのスパイスは日本では手に入れることができません。
そこであなたは考えました。
まずはインドに行きました。そしてインドで土地を購入して畑を耕して自らスパイスを育て、何年もかけて調合を研究します。これだけで物凄い年数がかかることはわかるかと思います。
APIがないと1から全て自分で時間をかけて準備することになります。
実際の開発で考えてみた
APIが何のかはこれでわかっていただいたかと思います。
それではここからは実際の開発でAPIとは何のかを見ていきましょう。
皆さんもよく飲食店の予約サイトを使っているのではないのでしょうか?
予約サイトを見ると大体そのお店の地図が載っていると思います。
この地図がGoogle MapのAPIになります。
予約サイトを開発している人はGoogle Mapを予約サイトに載せたいので、Googleにリクエストを出して、それを見たGoogleがレスポンスを返して予約サイトにGoogle Mapを載せられるようになります。実際の開発ではGoogleが「うちのサービスを使いたいならこういう書き方で注文してね」というAPIリファレンス(仕様書)を公開しています。APIリファレンスはマニュアルのようなものだと考えていただけたらと思います。それによりGoogleのサーバーに「地図データください」と通信することとなります。
先程のスパイスの例で見るとAPIリファレンスには「メールで必要な種類と本数を注文してね。スパイスは宅配業者があなたのお店に届けます。」といったマニュアルが記載されています。
その他よく日常で見かけるAPIはXやLINEがあると思います。
例えば、ニュースサイトでそのニュースをLINEで友人に送ったり、Xで呟くことができます。
皆さんも使ったことがあるのではないでしょうか?
これもAPIになります。ニュースサイトを作った人がXやLINEで共有できるように上記のようにLINEとXにリクエストを出して、ニュースサイトに載せることができるようになります。
これも同じくAPIリファレンスを基にXやLINEのマニュアルを実装に含んで使えるようにします。
APIがない世界線
カレー屋さんの例ではAPIがないと自らインドに行き、畑を耕して、スパイスを1から育てる必要がありました。
飲食店の予約サイトの例ですと、Google MapのAPIがないので、Googleが数十年かけて莫大な投資をして作り上げたインフラを、自前でゼロから構築するということになります。
Google APIを使わずに地図を作るなら、まず「地図のデータ」そのものを用意しなければなりません。自前で衛星を打ち上げるか、衛星を運用している会社から膨大な写真データを買い取るなど、考えただけでもとんでもないことになります。
このようにAPIがないと開発する側も凄く大変ですし、ユーザーとしても不便だと思います。
終わりに
いかがでしたでしょうか?
友人の「APIって何?」という疑問から改めてAPIについて考えてみました。
わかっているようでわかっていないことって沢山あるなと思いました。
この説明がAPIをよくわからない方の理解になることを祈ります!
同時に自分も改めてこのように文章化することで理解が深まりました!
今後も身の回りのものに例えてわかりやすく説明できたらと思います。
