APIとは
APIはソフトウェアやWEBサイトから、外部のシステムや機能を利用するためのインターフェースで、ソフトウェアやWEBサイト開発を容易にします。
この記事では、APIとはどのようなものか?どのようなメリットがあり、ソフトフェアやパソコンでどのように利用されているかなどをご紹介します。
もくじ
APIとは
「API」とは「Application Programming Interface(アプリケーションプログラミングインターフェース)」の略称となります。
Application Programming Interfaceを単語ごとに分解してみていくと以下の意味となります。
- Application:アプリケーション
- Programming:プログラムすること
- Interface:界面
特に「Interface(インターフェース):界面」の部分がAPIを知る上で重要なポイントなります。
「界面」とは「他と接している境目」の意味と理解してください。
インターフェースにはいろいろな意味がありますが、わかりやすいところではパソコン本体のインターフェースとしてUSBやHDMIポートなどがあります。
これは「物理インターフェース」と呼ばれパソコンと周辺機器などを「つなぐ部分」で、接続して情報をやりとりするための規格のような意味で理解してもらうとわかりやすいと思います。
APIは物理的なインターフェースではないのですが、アプリケーションやプログラムにおいて、いろいろな情報をやり取りできるように外部に向けて機能を連携できるようになっています。
APIは「外部のアプリケーションと連携する仕組み」と理解するとわかりますいかと思います。
APIを使うメリット
APIを使うことによるメリットには以下のようなものがあります。
- プログラム開発の簡略化
- 情報の最新化
- 信頼性の確保
順番に次の章から詳しく紹介していきます。
APIを使うメリット「プログラム開発の簡略化」
APIを利用する一番のメリットといえるのがプログラム開発の簡略化となります。
仮に「近所の、美味しいお店を簡単に探すアプリ」を開発するとします。
「近所」ということは、そのプログラムは地図の情報を使うことになる可能性が高いことは想像できるかと思います。
通常の開発手順なら、地図の情報をプログラムした上で「近所の、美味しいお店を簡単に探すアプリ」を組んでいく順番となると考えられます。
特に問題となるのが地図の情報を取得や表示するプログラムの部分です。
地図の情報は大企業が総力をあげて作成、提供している例があります。
自社のアプリとして地図の情報取得のプログラムを組むとなると、そのためだけに労力や投資を大規模に行うことになります。
そうして、地図情報が取得できるようになった後に、やっと美味しいお店を探すプログラムを開発することになります。
この手順のままでは「近所の、美味しいお店を簡単に探すアプリ」は簡単には開発できない可能性が高くなります。
そこで、有効になるのがAPIでのシステム連携の仕組みです。
APIで地図の情報の部分は、外部の企業が開発したプログラムとインターフェースでつなぐ仕組みが実現できます。
地図の情報表示、取得は外部の地図専門のシステムとAPIでつなげば、あとは現在地の情報を取得して、美味しいお店をピックアップするプログラムの部分だけを開発するだけとなります。
このようにAPIを使うと、プログラム開発を大幅に簡略化でき、開発にかかる期間やコストが大きく削減できることになります。
APIを使うメリット「情報の最新化」
こちらも先ほどと同じく「近所の、美味しいお店を簡単に探すアプリ」を開発すると仮定した続きとして紹介します。
地図の情報は一度作成すれば終わりではありません。
新たなお店が一か月の中でも地域によっては、たくさん出店している例があります。
その場合、新たなお店がどこに作られたのかを地図情報に反映するのは、APIで地図情報を提供している地図の専門の開発側が行ってくれます。
もし、この仕組みを利用できなければ、お店の建設や道路が新たにできた情報なども、一か月単位などで更新をつづけなければならなくなります。
単においしいお店を簡単に探すだけのアプリ開発の情報更新の難易度はとても高くなってしまいます。
情報の最新化が行われやすくなる点でも、APIはメリットが多くあります。
APIを使うメリット「信頼性の確保」
「近所の、美味しいお店を簡単に探すアプリ」の機能として、おすすめのお店のクーポンをユーザーにメールで配布したり、ポイントがたまる機能を実装したりするとします。
その場合、会員登録情報を入力して、個人情報を入力する必要があるプログラムになる可能性が高くなります。
いきなり個人情報をアプリケーションで入力するというのは少し抵抗感がある方もいるかもしれません。
APIを使うと大手のサービスで登録しているアカウントの情報を連結して利用することが可能となっています。
大手企業のサービスとアプリケーションの連携が許可されているわけですから、連携するためのアプリケーションは、大手企業側との細かな取り決めや、精査を受けていることは想像ができるかと思います。
ユーザー側の許可を得てからとはなるものの、いきなり個人情報を入力するよりは、大手企業に登録している情報を連結してもらう方が利用者としても信頼しやすいといえます。
WEBAPI
APIの中でも種類があります。
APIの中でもWEBAPIは皆さんにとって身近な存在となっています。
WEBのサイト(インターネットのページ)と連携するAPIをWEBAPIと理解するとわかりやすいと思います。
WEBAPIはインターネットを介してHTTPなどの形式でリクエストを送受信する仕組みです。
インターネットを介して、データや処理のやり取りを行いますので、世界中に向けてWEBAPIを使用してデータを提供することができます。
実装する場合WEBページとAPIの連携する作業は、WEBAPIの仕様がわかっていれば、ある程度の難易度で実装可能なことが多い傾向があります。
WEBAPIの事例
現在、WEBAPIを介して提供されているサービスには地図やメッセージ、支払い、カスタマーサービス、スポット情報など多数あります。
WEBAPIを複数組み合わせることで、短期間・低コストでWEBサイトが構築できる環境が整ってきています。
通販のサイトで、支払いの方法を大手企業と連携しているものも、立派なWEB APIとなります。
WEBAPIの事例「AmazonのAmazon Pay」「楽天のR Pay」
通販サイトの大手で「Amazon」や「楽天」があります。
この2つの企業は通販の大手で、会員登録や支払い方法などの登録はされている方も多いと思います。
そして、通販サイトの支払い方法で、支払方法として「AmazonのAmazon Pay」「楽天のR Pay」を使われたことがある方も多いのではないでしょうか。
これは、決済のシステムを大手企業とAPIを使って連携する形式となっています。
こういった決済の仕組みは、通販で購入する際に大変安心感があります。
導入する通販サイト側でもAPIで決済システムを接続するのみの対応となるので、開発のコストは少なく済みます。
APIは支払側にとっての便利さや安心、導入する側には開発面の簡略化や信頼の向上など、多数のメリットがあるといえます。
パソコンのグラフィックボード関連のAPI
パソコンにおいてもAPIは利用されています。
パソコンの映像出力に欠かせない「グラフィックボード」でのAPI利用の例を紹介していきます。
WindowsでゲームやCGなどのアプリケーションが3Dグラフィックスなどを描画するには、グラフィックス用のAPIである「DirectX」を利用します。
アプリケーションはグラフィックス APIのDirectXを使用してGPUへ処理のリクエストを行います。
DirectXで作成された命令はデバイスドライバを介してグラフィックボードに渡されます。
デバイスドライバはグラフィックボードなどの「PCパーツ」や「周辺機器」がOSであるWindows上で正常に動作するためのソフトウェアです。
3Dグラフィック処理に関わるグラフィックス APIはDirectXの他にも複数存在し、ゲームによっては最適なものに切り替えられる場合もあります。
グラフィックボードと関連するAPIとしては以下のような種類があります。
- DirectX
- OPEN GL
- Vulkan
DirectX
DirectXはグラフィック処理をゲームなどのプログラムから指示して、ハードウェアに実行させる「決まり事」や「ルール」を定めたものです。
DirectXは複数のAPIが集まって作成され、Windows上でグラフィック処理や音声の処理をする場合、高速に処理できるように設計されています。
また、ゲーム開発でも利用され、パソコンでゲームをするためにインストールするDirectXは「DirectXランタイム」と呼ばれます。
「ランタイム」とはコンピュータプログラムを「実行(Run)」する「時(Time)」を意味し、DirectXの中でも「ソフトウェアの実行時に使われるプログラム部分」と考えるとわかりやすいでしょう。
Microsoftが1995年移行開発を続けており、2022年現在「DirectX 12 Ultimate」が最新バージョンとなっています。
OPEN GL
OpenGLはWindowsだけでなく、LinuxやMacOSでも使用できる、オープン標準規格とされているグラフィックAPIです。
様々なハードウェアで利用可能で、OSとの組み合わせの選択肢が幅広いのも特長です。
OpenGLはDirectXより歴史が長く、1992年に発表されています。
Vulkan
Vulkan(ヴァルカン)は、DirectXやOpenGLと違い、ハードウェアへの負荷を下げながら3Dのパフォーマンスを高めることを意図して策定されたグラフィックAPIです。
こちらもOpenGL同様にWindows、Linux、MacOSでも使用できるオープン標準規格となっています。
グラフィックAPIの規格としては新しく、マルチスレッドを有効活用できるようにデザインされています。
Vulkanが策定されたのは2015年となります。
まとめ
APIの仕組みや事例について紹介をしてきました。
API自体は身近なアプリケーションやWEBサイトで利用されている例が多数あることがお分かりいただけたと思います。
パソコンにおいてもグラフィックボードなどでAPIと連携して性能を発揮している例があり、さまざまな用途でAPIは今後も使われていくことになるでしょう。