4-3. 簡単なAPIの利用
更新日:2025年12月7日
4-3. 簡単なAPIの利用について解説します。
API(Application Programming Interface)を使うと、外部サービスのデータや機能を 自分のWebサイトで利用できます。ここでは、無料で使えるAPIを実際に使ってみます。
APIの基本概念
- エンドポイント:APIにアクセスするためのURL
- リクエスト:APIへのデータ要求
- レスポンス:APIからの返答(通常JSON形式)
- APIキー:認証用のキー(必要な場合)
- レート制限:使用回数の制限
fetch APIの基本
JavaScriptのfetch APIを使って、外部APIにアクセスします。
// 基本的な使い方
fetch('APIのURL')
.then(response => response.json()) // JSONに変換
.then(data => {
console.log(data); // データを使用
})
.catch(error => {
console.error('エラー:', error);
});
実例1:天気API(無料)
// OpenWeatherMap API(無料枠あり)
const apiKey = 'YOUR_API_KEY';
const city = 'Tokyo';
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric&lang=ja`;
fetch(url)
.then(response => response.json())
.then(data => {
console.log(`${city}の天気:${data.weather[0].description}`);
console.log(`気温:${data.main.temp}℃`);
console.log(`湿度:${data.main.humidity}%`);
});
実例2:ユーザー情報API(テスト用)
// JSONPlaceholder(テスト用の無料API)
fetch('https://jsonplaceholder.typicode.com/users/1')
.then(response => response.json())
.then(user => {
document.getElementById('result').innerHTML = `
<h3>${user.name}</h3>
<p>Email: ${user.email}</p>
<p>会社: ${user.company.name}</p>
<p>住所: ${user.address.city}</p>
`;
});
無料で使えるAPI一覧
| API名 | 用途 | 認証 |
|---|---|---|
| JSONPlaceholder | テスト用データ | 不要 |
| OpenWeatherMap | 天気情報 | APIキー必要(無料) |
| PokeAPI | ポケモンデータ | 不要 |
| GitHub API | GitHubの情報 | 一部機能は認証必要 |
| Dog API | 犬の画像 | 不要 |
PHPでAPIを利用する
PHPからAPIを呼び出し、データを取得することもできます。 APIキーをPHP側で管理することで、セキュリティを向上できます。
// PHP側(get_weather.php)
<?php
$apiKey = 'YOUR_API_KEY'; // サーバー側で管理
$city = $_GET['city'] ?? 'Tokyo';
$url = "https://api.openweathermap.org/data/2.5/weather?q={$city}&appid={$apiKey}&units=metric&lang=ja";
// cURLを使ってAPIを呼び出し
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// JSONとして出力
header('Content-Type: application/json');
echo $response;
?>
// JavaScript側
fetch('get_weather.php?city=Osaka')
.then(response => response.json())
.then(data => {
console.log('大阪の天気:', data.weather[0].description);
});
エラー処理の実装
// 適切なエラー処理
async function fetchData(url) {
try {
const response = await fetch(url);
// HTTPステータスをチェック
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
// エラーの種類に応じて処理
if (error.name === 'TypeError') {
console.error('ネットワークエラー:', error);
} else {
console.error('APIエラー:', error);
}
return null;
}
}
// 使用例
fetchData('https://api.example.com/data')
.then(data => {
if (data) {
// データを処理
} else {
// エラー時の処理
}
});
APIキーの管理
重要:APIキーは絶対にJavaScriptコードに直接書かないでください。 悪用される危険があります。必ずサーバー側(PHP)で管理しましょう。
- ❌ 悪い例:JavaScriptにAPIキーを記述
- ✅ 良い例:PHPでAPIを呼び出し、結果をJavaScriptに返す
- ✅ 良い例:環境変数でAPIキーを管理
まとめ
APIを使うことで、外部サービスの機能を簡単に活用できます。 無料のAPIで練習してから、本格的なAPIを使用することをお勧めします。 次章では、PHPとJavaScriptを組み合わせた実践的なコード例を学習します。
免責事項
本コンテンツは2025年12月時点の情報に基づいて作成されている。最新の情報については公式ドキュメントを参照されたい。
本コンテンツは2025年12月時点の情報に基づいて作成されている。最新の情報については公式ドキュメントを参照されたい。