はじめに
いろんなアプリを使ってるとよく耳にする API という言葉があります。
私も色々な API を使って効率化を図っています。
しかし、API がなんたるかを人に聞かれたとき、パッと答えられませんでした。
使っているのに答えられないのは悔しい。
ということで、備忘録も兼ねて、ここで解説したいと思います。
間違えがありましたら、コメントで教えてください。
API とは
API とは Application Programming Interface の略です。
英語を見てわかるように Interface の一種、つまり接続点を意味します。
API は、異なるシステム同士の接続点となるものです。
他に、Interface という単語があるものには User Interface (UI) があります。
UI は機械と利用者の接続点になります。
たとえば、画面上のボタンやメニュー、入力フォームなどが UI にあたります。
話はずれますが、UI は接続点ですが、これが最悪だと悲しくなります。
以下のサイトで実際に最低の UI を体験できます。
https://userinyerface.com/
APIのわかりやすい説明
たとえば、次のような構成を考えてみます。
-
システム A (外部)
- ゲームデータを集めてランキングを作る
- 集めたデータをもとにレートを計算する
-
システム B
- ゲームデータを保存する saveGameData()
- ゲームデータを削除する deleteGameData()
- ゲームデータを取得する getGameData()
このとき、API が外部に公開すべき機能は「ゲームデータの取得」だけです。
外部から簡単にゲームデータの保存や削除ができてしまうと危険だからです。
そのため公開 API は「ゲームデータの取得」にのみ接続できるようにします。
図にすると、次のようなイメージです。
図では便宜上 API を箱で表していますが、実際には外部に公開された接続点やルールを API と呼びます。
このように、他のプログラムから使ってよい機能を決め、その使い方を定めた接続点やルールが API です。
特に Web API の場合は、外部のシステムから使える機能だけを公開することが多いです。
つまり、API は特別な「APIという物体」があるわけではありません。
外部のプログラムからシステムの機能を利用できるように用意された、接続点やルールのことを API と呼びます。
API の具体例
API には、Web API やローカル API など、色々な種類があります。1
その中から、よく聞くものを解説します。
Web API
Web APIは、インターネット経由で別のサービスの機能やデータを利用するためのAPIです。
たとえば、天気情報を取得するAPI、地図情報を取得するAPI、決済を行うAPI、AIの機能を利用するAPIなどがあります。
Web APIでは、多くの場合、URLに対してリクエストを送り、レスポンスとして結果を受け取ります。
実際にお天気を取得しよう!
皆さんも、API でお天気、知りたいですよね?
そこで以下の Web API を使います。
以下の例では、Open-Meteo の天気予報 API に対してリクエストを送っています。
latitude と longitude には天気を取得したい場所の緯度・経度を指定します。
ここでは東京の緯度・経度を指定しています。
current には、取得したい現在の天気データを指定しています。
この例では、現在の気温 temperature_2m と天気コード weather_code を取得しています。
API からは JSON 形式でレスポンスが返ってくるため、response.json() で JavaScript のオブジェクトとして扱えるようにしています。
async function getWeather() {
const url = new URL("https://api.open-meteo.com/v1/forecast"); // API の URL
// ヤケクソ指定
url.searchParams.set("latitude", "35.6895"); // 東京
url.searchParams.set("longitude", "139.6917");
url.searchParams.set("current", "temperature_2m,weather_code");
url.searchParams.set("timezone", "Asia/Tokyo");
const response = await fetch(url);
if (!response.ok) {
throw new Error(`APIリクエストに失敗しました: ${response.status}`);
}
const data = await response.json();
console.log(`時刻: ${data.current.time}`);
console.log(`気温: ${data.current.temperature_2m}`);
console.log(`天気コード: ${data.current.weather_code}`);
}
getWeather();
なお JSON はこんな感じできます。
{
"latitude": 35.7,
"longitude": 139.6875,
"generationtime_ms": 0.050067901611328125,
"utc_offset_seconds": 32400,
"timezone": "Asia/Tokyo",
"timezone_abbreviation": "GMT+9",
"elevation": 40.0,
"current_units": {
"time": "iso8601",
"interval": "seconds",
"temperature_2m": "°C",
"weather_code": "wmo code"
},
"current": {
"time": "2026-06-14T18:30",
"interval": 900,
"temperature_2m": 24.1,
"weather_code": 3
}
}
Weather data by Open-Meteo.com, licensed under CC BY 4.0.
ローカル API
ローカル API は、インターネットを経由せず、同じ PC や同じ環境内にある機能を利用するための API です。
Web API が外部のサーバーにリクエストを送るのに対して、ローカル API は自分の PC 内の機能や、インストール済みのライブラリ、OS が提供する機能などを呼び出します。
たとえば、ファイルを読み書きする API、画面にウィンドウを表示する API、音を再生する API、OS の情報を取得する API などがあります。
実際にファイルを読み込もう!
ローカル API の例として、Node.js の fs モジュールを使ってファイルを読み込んでみます。
fs は File System の略で、ファイルの読み書きなどを行うための機能です。
ここでは、同じフォルダにある sample.txt というファイルを読み込んで、その中身を表示しています。
const fs = require("fs");
const text = fs.readFileSync("sample.txt", "utf-8");
console.log(text);
このコードでは、インターネット上のサービスにアクセスしているわけではありません。
自分の PC 内にある sample.txt を、Node.js が用意しているファイル操作用の API を通して読み込んでいます。
おわりに
開発する際によく出てくる API は、とても便利なものです。
最初は少し難しく感じるかもしれませんが、基本的には「別のプログラムやサービスの機能を使うための接続点・ルール」と考えればいいでしょう。
この記事を読んでなんとなくわかってくれたら幸いです。
最後まで読んでいただき、ありがとうございました。
-
わかりやすく解説してるのがあったのでこっちを参照するのも良いかも知れません。
https://qiita.com/AWSKuman/items/44ee7ded46ecc52f9ff5 ↩