APIという言葉、Web制作やシステム開発などの現場で一度は目にしたことがあるのではないでしょうか。
しかし、これまでに使ったことがあるよ!という方でもいざ「APIって何?」と改めて聞かれると、意外と説明に悩んでしまうもの。
当記事では、そんなAPIについて用語の意味からおさらいをしてみたいと思います。
APIとは
まずは言葉としてどのように定義されているのか、Wikipediaでチェックしてみましょう。
アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。
アプリケーションプログラミングインタフェース – Wikipediaより引用
Application Programming Interfaceという英語の頭文字をとって「API」と呼ばれているのですが…これだけではなかなか腑に落ちません。
そもそも「インタフェース」とは一体何でしょうか?
インタフェースとは
英単語としては「境界面」「接点」といった意味を持ちます。
コンピュータ用語では、異なる2つのものの間で何かやり取りを行うとき、その2つのものを結ぶ、いわば窓口のような役割を果たすもののことを”インタフェース”と呼ぶのです。
この「窓口のような役割を果たすもの」と、結ばれる「異なる2つのもの」にはこんな例があります。
- 「USB端子」は「PC本体と、周辺機器」を結ぶインタフェース
- 「マウス」は「人と、PCへの命令」を結ぶインタフェース
- 「API」は「あるWebサービスの一機能と、外部のWebサービス」を結ぶインタフェース
さて、ここでさらっと「API」も挙がりました。
USB端子やマウスのように物理的に見えるものと比べるとイメージしづらいですが、APIも「あるWebサービスの一機能」を使うために提供された接続端子のようなものであると捉えられます。
APIによって結ばれた「あるWebサービスの一機能と、外部のWebサービス」とはどんなものがあるか、具体例でもう少し詳しく見てみましょう。
APIによって「あるWebサービスの一機能」を活用している例:Google マップ
地図情報サービスとして有名なものの一つが「Google マップ」。
スマートフォンアプリで道を調べたりなど、日常的に役立っている場面も多いことと思います。
しかしそれ以外にも、Google マップの地図を目にする機会があります。例えばお店や企業のWebサイトを見ているときにアクセス情報としてGoogle マップが掲載されているのを見かけたことがあるのではないでしょうか?
実はこれこそが、APIによって結ばれた「あるWebサービスの一機能と、外部のWebサービス」の一例であると言えます。
APIの利用者と提供者の関係性
掲載者の視点から考えると、WebサイトにGoogle マップと同じ地図が掲載できるのは、Google マップが「地図を表示させる」という一機能を切り出してAPIとして提供してくれているおかげです。
掲載者はあくまでこのAPIの利用者に過ぎず、必ずしもGoogle マップそのものの開発知識を習得しているわけではありません。 「APIとして渡された接続端子を、決められた方法でGoogle マップ側に繋げることで、地図表示の仕組みを自分のところに取り込んでいる」…という関係性です。
このように、「あるWebサービスが所有している情報や一部の機能だけを公開して、それを外部のWebサイトやサービス開発で利用できるようにした」もののことをAPIと呼びます。
Google マップの仕組みは見るからに複雑で、掲載者一人一人が都度同じようなものを開発するのは多大なコストがかかります。このような場面で効率化することを目的にAPIが広く役立てられているのです。
- 厳密には「API」はとても広義な言葉で、上記のようなAPIは正式には「Web API」と呼ばれます。
知っておきたいAPIの弱点
APIは機能を簡単に使うための手段なので、「APIを使ってGoogle マップが表示できる」ことと「Google マップそのものの仕組みを開発できる」ことはイコールではありません。
一般的に、APIとして公開されるのは「このAPIを利用するためには、あなたのサービス上でこんな風に実装してくださいね」といった使い方の部分だけで、システム本体のソースコードは公開されていないことがほとんどです。
自力で仕組みを作らずとも他者の機能を活用できるのはAPIの大きな魅力ですが、これはある意味弱点にもなり得ます。先ほどの例だともしもGoogle マップがAPIの提供をやめてしまった場合は地図表示の機能が使えなくなるため、きちんと代替の方法をとってWebサイトやシステムへの影響を抑えることが大切です。
APIを利用して掲載した情報や実装したシステムは、よくも悪くも提供側に依存している点を心に留めておきましょう。
まとめ
最後にもう一度、APIとは何かまとめてみます。
API(Web API)とは、「あるWebサービスが所有している情報や一部の機能だけを公開して、それを外部のWebサイトやサービス開発で利用できるようにした」もののことです。
これは、「特定の機能を使うために提供された接続端子」と捉えるのもわかりやすいかもしれません。
APIの提供側は、よく使われる命令や蓄積した情報をみんなに有効活用してもらえるように切り出し、APIとして公開します。
このとき利用者にはその機能と繋がるための接続端子が渡されるので、その繋ぎ方を学ぶことで、自分で1からシステムを作ることなく効率よく欲しい機能を実装していくことが可能になります。
ちなみにセキュリティなど様々な観点から、「どのような仕組みで動いているか」までは公開していないAPIも多くあります。
提供者にとっては、内部的な部分は無理に公開せずとも情報や機能を活用してもらえる、利用者にとっては仕組みが作れなくても提供された情報や機能を使える、のがAPIのすごいところです。