本文へスキップ

APIとは?システム同士がやり取りする仕組みを未経験向けに解説

#API#仕組み#未経験#インフラ学習#Web

「このアプリ、天気予報の情報はどこから持ってきているのですか?」と聞かれたら、答えの多くは「API」です。結論から言うと、APIとは、あるシステムが持っている機能やデータを、別のシステムから呼び出して使うための窓口の仕組みです。自分では作っていない機能を、決まった形で呼び出すだけで使えるという点を押さえておくと、普段使っているアプリやインフラの現場で出てくる「API連携」という言葉の意味がつながって見えてきます。この記事では、APIとは何か、具体例を使った動きのイメージ、インフラエンジニアとの関わり方、安全に使うための基礎知識まで、未経験向けに順番に解説します。

APIとは何か

API(Application Programming Interface)は、あるシステムの機能を、別のシステムが決まった手順で呼び出せるようにした窓口のことです。レストランの例で考えると分かりやすくなります。お客さんは厨房に直接入って料理を作ることはできませんが、メニューに書かれた注文方法でウェイターに頼めば、欲しい料理を受け取れます。このときの「メニューと注文方法」の役割を果たすのがAPIです。

ウェイターが客と厨房をつなぐ例えで表したAPIのリクエストとレスポンスの仕組み

システム同士のやり取りも同じ発想です。呼び出す側は、相手のシステムの内部がどう動いているかを知らなくても、決められた形式でリクエストを送れば、決められた形式で結果(レスポンス)が返ってきます。この「内部を知らなくても使える」という性質が、APIが広く使われている理由の一つです。

具体例で見るAPIの動き

天気予報アプリを例に、APIがどう動いているかを見てみます。

  1. アプリが、気象情報を持つサーバーのAPIに「東京の今日の天気を教えて」というリクエストを送る
  2. サーバー側が、データベースから該当する情報を取り出す
  3. 「晴れ、気温22度」といった結果を、決まった形式(JSONと呼ばれるデータ形式が多い)でレスポンスとして返す
  4. アプリがそのレスポンスを受け取り、画面に表示する

この一連のやり取りは、インターネット経由のAPIであれば多くの場合HTTPという通信の約束事に沿って行われます。リクエストを送る宛先は「エンドポイント」と呼ばれるURLで指定され、ポート番号とは?で解説した仕組みを使って、サーバー側のどのプログラムが応答するかが決まります。

用語役割
リクエスト呼び出す側が送る「お願い」の内容
エンドポイントリクエストを送る宛先のURL
レスポンス呼び出された側が返す結果

インフラエンジニアとAPIの関わり

APIはアプリ開発者だけのものではなく、インフラの現場でも日常的に関わります。現役でインフラの現場にいる立場から言うと、監視ツールのアラートをチャットに通知する連携や、クラウド環境の操作の多くはAPI経由で行っています。

例えば、GitHub Actionsとは?で解説したCI/CDの仕組みは、コードがpushされたことをきっかけに、GitHub側のAPIを通じてワークフローを起動しています。また、AWSのようなクラウドサービスを操作するコマンドやツールも、画面での操作の裏側では同じAPIを呼び出しており、手順を自動化するスクリプトを書くときにはこのAPIの存在を意識する場面が増えてきます。TerraformのようなIaCツールも、裏側でクラウドのAPIを呼び出して環境を構築しています。

このように、APIという仕組みを理解しておくと、監視・自動化・クラウド操作といった、インフラエンジニアが日常的に触れる作業の裏側で何が起きているかがイメージしやすくなります。

APIを安全に使うための基礎知識

誰でも自由にAPIを呼び出せてしまうと、データを盗まれたり不正に操作されたりする危険があります。そのため、多くのAPIでは、呼び出す側が「許可された利用者である」ことを示す仕組みが用意されています。

  • APIキー: リクエストに添える合言葉のような文字列。発行された利用者だけが使える
  • 認証・認可: 「誰が」「何をしてよいか」を区別する仕組み。AWS IAMとは?で解説した権限管理も、APIを呼び出すときにこの区別を行うための仕組みの一つです
  • 通信の暗号化: リクエストやレスポンスの内容を途中で盗み見られないようにする仕組み。SSL/TLSとは?で解説した技術が、多くのAPI通信でも使われています

InfraDojoなら、こうしたAPIの基礎やクラウドサービスの操作を、ブラウザ上の演習環境で手を動かしながら学べます。APIという言葉だけで終わらせず、実際にどんな場面で使われているかを体験しておくと、学習を先に進めるときの理解がぐっと早くなります。

よくある質問

Q. APIとWebサイトの違いは何ですか?

Webサイトは人間がブラウザで見て操作することを前提に作られていますが、APIはシステム同士が決まった形式でデータをやり取りすることを前提に作られています。同じインターネット技術を使うことが多いものの、受け取る相手が人間かシステムかという点が異なります。

Q. APIを使うにはプログラミングが必須ですか?

APIを呼び出すプログラムを自分で作る場合はプログラミングの知識が必要になりますが、既に用意されたツールやサービスがAPIを裏側で使っているだけのケースもあり、利用者としてAPIの存在を直接意識しない場面も多くあります。インフラの仕事では、まず「どんな場面でAPIが使われているか」を知っておくことが最初の一歩になります。

Q. APIが使えなくなると、アプリはどうなりますか?

連携先のAPIが停止したり応答が遅くなったりすると、そのAPIから情報を受け取る機能だけが使えなくなったり、表示が遅くなったりします。障害対応の場面では、どのAPIにどこまで依存しているかを把握しておくことが、切り分けの助けになります。

Reo|インフラエンジニアのアイコン

この記事を書いた人: InfraDojo運営者(Reo|インフラエンジニア)

現役インフラエンジニア。SESの現場経験に基づき、未経験からのインフラ転職と学習を支援しています。InfraDojoは、ブラウザ上のターミナルで実際に手を動かして学べるインフラ学習サイトです。

@Reo_engineer_

読むだけで終わらせず、今日から手を動かす

InfraDojoは、ブラウザを開くだけでLinux・ネットワーク・AWSの演習ができる学習サイトです。登録は30秒、最初のコースは無料です。