FE EXAM

API(機能を呼び出す接続窓口)

ソフトウェアの機能を外部から利用するための接続窓口(取り決め)。

DIAGRAM
利用側
API(窓口)
提供側
利用側アプリ例: 天気アプリ機能を使いたいAPI決められた形式の窓口・取り決めGET /weather?city=tokyo提供側の機能天気データベース(内部は非公開)① 決められた形式で要求② 機能を実行③ 結果を返す④ 応答(天気データ){ "city": "tokyo", "temp": 22, "weather": "sunny" }
解説

📌
APIとは

機能を呼び出すための「窓口」利用側API窓口提供側

APIとはApplication Programming Interfaceの略で、ソフトウェアの機能を外部から呼び出すための取り決め・接続窓口のことです。「この形式で要求すれば、この形式で結果を返す」という約束ごとが決められています。

上の図解のように、利用側は決められた形式で要求を出し、提供側が機能を実行して結果を返します。利用側は提供側の内部がどう作られているかを知る必要はありません。

身近な例で考えると、レストランのメニューに似ています。お客は厨房の調理方法を知らなくても、メニュー(決められた形式)で「これをください」と注文すれば料理が出てきます。このメニューにあたるのがAPIです。

📌
主要なAPIスタイル

代表的なAPIの設計スタイルRESTGraphQLSOAPgRPC

APIにはいくつかの設計スタイル(やり取りの作法)があります。代表的なものは次のとおりです。
REST:HTTP(Webの通信規約)をベースにし、データを「リソース(資源)」として扱う最も普及した方式
GraphQL:必要なデータだけをまとめて取得できる方式
SOAP:XML(タグで構造を表す形式)をベースにした方式
RPC / gRPC:相手側の関数を直接呼び出す感覚で利用する方式

現在、Webサービスの多くはRESTを採用しています。RESTでは「GET /users/1」のように、URL(場所)とHTTPメソッド(取得・登録などの操作)を組み合わせて機能を呼び出します。

📌
利用するメリット

外部サービスを部品のように組み込める自分のアプリ地図API決済APIAI API

APIを利用する主なメリットは次のとおりです。
内部実装を知らなくても使える:窓口の使い方さえ分かれば、提供側の中身を理解する必要がない
開発の分業・再利用:機能ごとに切り分けて作り、別々のチームが独立して開発できる
外部サービスとの連携:地図・決済・翻訳など、他社の高機能なサービスを自分のアプリに組み込める

例えば飲食店のアプリに地図APIをつなげば、自前で地図を一から作らなくても店舗の位置を表示できます。決済APIを使えば、クレジットカード処理という高度で責任の重い仕組みを安全に利用できます。このように必要な機能を部品のように組み合わせて、短期間で高機能なサービスを作れるのがAPIの大きな利点です。

🔍
なぜAPIが便利なのか

API利用側内部を知らなくていい提供側の内部DB・ロジック・セキュリティ処理(非公開)窓口だけ公開、内部は隠す

APIが便利な理由の核心は、「内部の複雑さを外から隠せる」点にあります。提供側は機能の窓口(API)だけを公開し、その裏にある複雑な処理・データベース・セキュリティ対策はすべて非公開にできます。

なぜこれが便利なのか。利用側にとって3つの恩恵があります。
学ぶコストが減る:「どう使うか」だけ知ればよく、「どう作られているか」を調べる必要がない
安全に使える:提供側が内部のセキュリティを管理してくれるので、利用側が気にしなくていいことが多い
変更に強い:提供側が内部を改善しても、窓口(APIの使い方)が変わらなければ利用側には影響なし

ATM(現金自動預払機)がよい例です。利用者はATMの機械の中のシステムを知らなくても、画面の指示(API)に従うだけで入出金できます。銀行側がシステムを更新しても、ATMの操作手順が同じなら何も困りません。このように「使い方の約束を固定し、内部は自由に変えられる」のがAPIの本質的な便利さです。

📨
リクエストとレスポンスの仕組み

利用側アプリ/ブラウザAPIGET /weather→ JSON提供側サーバ/DB① リクエスト(要求)② レスポンス(応答)

Webで使われるAPIは、リクエスト(=要求)とレスポンス(=応答)のやり取りで成り立っています。
リクエスト:利用側が「この情報をください」と決められた形式で要求を送る
レスポンス:提供側が結果を決められた形式で返す。よく使われる形式がJSON(=データを整理して書く記法。キーと値のペアで表す)

たとえば天気アプリが天気APIに GET /weather?city=tokyo と要求を送ると、API側から {"city":"tokyo","temp":22} のようなJSONが返ってきます。アプリはこのJSONを読み取って画面に表示するだけでよく、天気データの計算や保管は一切しなくてすみます。

なぜJSON(キーと値のペア)が便利なのか。コンピュータの言語(JavaScriptでもPythonでも)が読めるシンプルな形式だからです。提供側と利用側がどんな言語で作られていても、JSONというひとつの形式を通して会話できます。これが「言語を選ばないAPIの強み」のひとつです。

📝
練習問題

Q1. API(Application Programming Interface)の説明として最も適切なものはどれか。

Q2. HTTPをベースにし、リソース(資源)を中心に設計されたAPIのスタイルはどれか。

Q3. APIを利用するメリットとして最も適切なものはどれか。

関連コンテンツ