はじめに
こんにちは!SIerに入社して1年目の新人エンジニアです。日々の業務で当たり前のように使われている用語で「えっ、それって何?」と思ったものを調べて、自分なりにまとめていきます。
今回は「API」について調べてみました。
目次
APIって何の略?
まず、「API」は「Application Programming Interface」の略です。日本語では「アプリケーション・プログラミング・インターフェース」となります。
APIの基本概念
APIはソフトウェア同士がデータのやりとりするための窓口のようなものです。簡単に言うと、異なるシステムやプログラム同士が「会話」するための共通言語や仕組みを提供するものです。
APIがあることで、私たちプログラマは相手のシステムの内部構造を知らなくても、決められた方法で機能を利用できます。例えば、Googleマップの地図をアプリに表示したい場合、Googleマップの内部がどうなっているか知らなくても、GoogleマップのAPIを使えば簡単に実現できるんです。
APIをレストランに例えると
APIの概念を説明する時によく使われる例えが「レストラン」です。
- 客(クライアント): システムを利用したい側
- ウェイター(API): 注文(リクエスト)を受け取り、厨房に伝え、料理(レスポンス)を客に届ける役割
- 料理人(サーバー): 実際に処理を行い、結果を返す側
客は「ハンバーグを1つください」と注文(リクエスト)し、ウェイターはそれを厨房に伝えます。料理人がハンバーグを作り、ウェイターを通じて客に届けられます(レスポンス)。
ここで重要なのは、客は料理人が具体的にどうやってハンバーグを作るのか(内部処理)を知る必要がないということ。メニュー(API仕様)さえ分かれば、注文して料理を味わうことが出来ます。
APIの種類
APIには大きく分けて3つのタイプがあります
Web API
インターネットを通じて異なるシステム間でデータをやり取りするAPI。HTTPリクエストを使用してサーバーと通信します。
ライブラリAPI/ランタイムAPI
プログラミング言語のライブラリやフレームワークが提供する機能を使うためのインターフェース。
例えば
- Javaの標準ライブラリAPI
- ReactやVue.jsといったJavaScriptフレームワークのAPI
ネイティブAPI
オペレーティングシステムが提供する機能を利用するためのインターフェース。
APIの実際の利用例
- SNSログイン: 「Facebookでログイン」ボタンは、FacebookのAPIを使って認証情報を取得
- 天気予報アプリ: 気象データを提供するAPIからデータを取得して表示
- 決済システム: クレジットカード処理をPayPalやStripeなどのAPIに任せる
- 地図サービス: GoogleマップのAPIを使って地図を表示
ビジネスシステムでも、在庫管理システムと会計システムの連携、顧客情報の共有などにAPIが使われています。
APIを使う利点
- 開発の効率化: APIを利用することで、自社で一から機能を開発する必要がなくなり、開発時間とコストを大幅に削減できる
- セキュリティレベルの向上: GoogleやFacebookなどの認証APIを利用すれば、高度なセキュリティを比較的容易に実現できる
- データの二次利用: API提供側が持つ膨大なデータを自社サービスで活用できる
まとめ
「API」という用語、最初は単なる技術用語の一つだと思っていましたが、調べてみるとシステム間の連携を実現する重要な概念であり、現代のソフトウェア開発の基盤となっていることが分かりました。レストランの例えで考えると、APIはウェイターのようにクライアントとサーバーの間で情報をやり取りする重要な役割を担っています。
参考資料