みなさん、こんにちは。サイオステクノロジーでマーケティング業務を行っている中谷です。今回はAPIについて勉強しました。
IT業界にいる方なら、誰でも「API」を聞いたことがある。
しかし、エンジニアではない方や、IT業界と関わっていない方なら、APIって何?何のために使うの?と思う人も多いでしょう。
ウィキペディア(Wikipedia)では、APIについて、下記の解釈をしている。
「アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。」
「商業的に使われる狭義では、各種システムやサービス(ハードウェア、OS、ミドルウェアおよびWebサービス等)を利用するアプリケーションソフトウェア (Application) を開発・プログラミング (Programming) するためのインタフェース (Interface) である。」
え?ナニコレ?全然わかりません~と逆に混乱してしまう。
そこで、誰でもわかるよう、私なりに説明してみたいと考えた。
APIは、ソフトウェアを作るためのツールであり、システム/アプリケーションとシステム/アプリケーションを繋げる便利なサービス。
わかりやすく言えば、システム同士が決まった言語で会話する方法である。
例えば、
ハムスターの画像をみたい→PCを取り出す→ウェブサイトに「ハムスター」と入力→「捜索」
そうすると、ハムスターの画像をPCに送られてくる。
つまり、パソコンとハムスター画像情報を保存しているサーバがAPI経由で会話しているわけだ。
会話するのに、同じ言葉でなければならないよね。
こういう時、APIが「翻訳」してくれるのだ。
もう一つ、APIは「翻訳」だけの仕事ではなく、「判断」の仕事もしている。
例えば、APIは「野菜」関連の言葉しか理解できないとする。
「人参ください」と言われたら、それが野菜の一種として理解し、ちゃんと返してくる。
「あれください」と言われても、「あれ」が野菜に含まれていないので、APIが理解できず(正確にいうと、Documentationに記載されていない)、アクションを返してくれないわけ。
このように、APIは、どのメッセージが「可」、どのメッセージが「不可」なのか、判断する機能を持っている。
ちなみに、Documentationは取扱説明書と理解してください。
最後に、おまけ!
APIを語るときに、API Gatewayを避けては語れない。APIを管理したり、簡単に実行できるようにするためのサービスなのだ。
新しいシステムやアプリケーションを開発するとき、APIでさまざまなシステムをつなぐ。
システムが大きければ大きいほど、管理が複雑で大変になる。しかし、API Gatewayを使うと・・・ほら!スッキリなったでしょう。☺