APIとは何か?
API(Application Programming Interface)とは、2つ以上のシステムを接続し、データを共有することを可能にするコードのセットである。 プログラムと人をつなぐ役割を果たすユーザーインターフェースに対して、APIはプログラムと他のプログラムをつなぐために使用されます。
ここ数年、なぜAPIがこれほどまでに大きなトピックとなり、APIで何ができるのか。
APIは、企業間の接続、データの交換、プログラミング機能の強化のために世界中で広く利用されています。 Facebook、Amazon、Googleなどの企業は、独自のAPIを開発し、自社のエコシステムへの完全なアクセスを渡すことなく、他のプログラムにカスタマイズされたデータを提供しています。
キーポイント
APIとは、Application Programming Interfaceの略です。
2つ以上のシステムを接続する役割を果たすソフトウェアのインターフェースである。
この技術により、システムはデータを交換し、プログラムの複雑さを簡略化し、システムの機能を拡張し、セキュリティの層を提供することができます。
APIは、レストランのウェイターに例えることができます。 お客さまとキッチンをつなぐ重要な存在です。
レストランの例
APIとは何かを理解するために、グルメなハンバーガーが食べたいけど、自分で作る能力がないと想像してみてください。 そこであなたは、街に新しくできたグルメバーガーレストランに行きます。 料理を注文したいのに、厨房が作ってくれる。 でも、厨房のスタッフにどうやって注文を中継するんですか?
これはもちろんウェイターを通して行います。 あなたとキッチンをつなぐ重要な存在です。 ウェイターがいなければ、厨房とのやり取りができず、ハンバーガーを提供することができない。 しかし、ウェイターは厨房とのつながりを通して、食事の能力を高めることができます。
この例では、ウェイターはレストランのAPIであり、あなたとキッチンは2つの独立したシステムです。 この2つのシステムをつなぐAPIにより、複雑な手続きも依頼するだけで、実行できるようになりました。 このように、APIは2つのシステムをつなぐことで、その機能を最適化・拡張する役割を担っています。
APIはどこで使われるのか?
APIは世界中で使われています。 グローバル・コネクティビティのボンネットの下のエンジンなのです。 オンラインレシピ、音楽、地図、駐車場の空き状況など、すべてAPIによって可能になり、日々強化されています。 現実には、APIをある程度使っていないインターネットアプリケーションを探すのは非常に困難です。
API例1
例えば、バレエのチケットをサードパーティーのチケットサービスを通じてオンラインで購入する場合を考えてみましょう。 このサービスは、劇場の座席を所有しているわけではなく、単に劇場のAPIを通じてデータベースにアクセスしているに過ぎません。 この機能により、チケットの販売やイベントのデータベースの自動更新が可能になりました。
API例2
スマートフォンのメーカーは気象会社ではありませんが、世界中の天気に関する最新のデータを持っています。 このデータは、The Weather Channelなどの会社から提供されています。 世界中にセンサーがあり、そのAPIを利用することで携帯電話がデータベースにアクセスし、気象情報を受け取ることができるのです。
APIパワー:4つのキーアトリビュート
- クリティカルなデータ交換
APIは、システム間のデータ交換を強化するための扉を開き、必要なときに最適で最新のデータを提供します。
レストランの例を続けましょう。 注文した商品について詳しく知りたいときは、ウェイターに聞けばいいだけです。 そして、料理に関する必要な情報、待ち時間の定期的な更新など、さまざまな情報を提供することができます。
実際の例では、どのiPhoneにも内蔵されている天気予報アプリで確認することができます。 アップルは天候に左右される会社ではありません。 世界中にディープLセンサーがあるわけではありません。 むしろ、The Weather Channelのような予報会社のAPIからデータを引っ張ってきているのです。
同じように、VKSの作業指示ソフトのようなシステムは、ERP(Enterprise Resource Planning)やMES(Manufacturing Execution System)といった他のシステムと情報を交換することができるAPIを備えています。
- プログラムの複雑さを簡素化する
また、APIは複雑な機能を簡略化する役割も担っています。 データを交換することで、重要な作業を効率的に自動化することができ、プログラムが互いに促進し合うことができます。
レストランに戻ったら、溶けたガナッシュが流れ出しながら歌っているような素敵なチョコレート溶岩ケーキが出てきたと想像してください。 作り方を知らなくても、このファンタジックなデザートは作れます。 店員さんと一緒なので、注文するだけでいいのです。 あとはキッチンが何とかしてくれます。
同様に、APIに対応したプログラムは、インターネットに接続する方法や、端末のカメラを使って写真を撮る方法などを知る必要はありません。 オペレーティングシステムにお願いするだけでいいのです。 プログラムが使っているデバイスやOSは関係なく、2つ以上のプログラム間で情報をやり取りするコネクタがあることだけが重要です。
APIは、プログラムが他のシステムと新しいレベルの統合とチームワークを実現することを可能にします。
- 拡張機能
APIは、システムが接続されているプログラムに基づいて、その機能を拡張することを可能にします。 スマホでこんなことあったよね。 あるプログラムは、私たちのカメラにアクセスしたり、私たちの現在地を使用する許可を求めています。 これは、プログラムがAPIを使用して、私たちの携帯電話内のデータソースやデバイスと接続するものです。
何がすごいって、可能性が無限大にあるように思えることです。 オペレーションとサプライチェーンのあらゆるシステムを統合する可能性を想像してみてください。 現在、各プログラムは、他のシステムの情報や能力を利用しています。
チームに新しいメンバーが加わったと思えばいいのです。 人や専門性を増やすことで、ビジネスの能力は高まっていきます。 同様に、プログラムは強力なAPI技術によって他のシステムと相互作用し、その機能を拡張します。
- セキュリティの階層化
APIは、パスポートオフィスと同じように、何重ものセキュリティを提供する役割も担っています。 パスポートの申請手続きを思い浮かべてください。 通常、このプロセスはパスポートオフィスで管理され、一般の人々から遮蔽されています。 ウェイターの例と同じように、パスポート係はお客様とカウンターの向こうで行われる手続きの仲介をするのです。
これまで述べてきたように、これは塗る以外は何もしなくていいというある種の複雑さを隠しています。 しかし、それと同じくらい重要なのは、不要な改ざんからシステム内部を保護することです。 ユーザーはパスポートの窓口(API)でしか対話できないため、そのプロセスは保護されています。
同様に、APIは、他者が自分のシステムとどのように相互作用するかを制御するレベルをシステムに提供する。 APIは、貴重なデータやプロセスを保護する安全で強力な接続をユーザーに提供します。