「JavaScriptで動きをつけられるようになったけど、もう一歩進化させたい」
「他のポートフォリオと差別化したい!」
そんなあなたに最適なのが、API連携(データの自動取得) です。
この記事では、初心者でも理解できるように
- APIとは何か
- JavaScriptでAPIを使う方法
- 実際のポートフォリオ改良例(天気アプリなど)
- コード例と練習ステップ
まで、丁寧に解説します。
目次
- 1 🌍 第1章|そもそも「API」って何?
- 2 ⚙️ 第2章|JavaScriptでAPIを使う基本:fetch関数
- 3 🌤 第3章|実践例:天気APIでポートフォリオをアップデート
- 4 💬 第4章|APIを使う上での注意点
- 5 🧠 第5章|他にも使える!ポートフォリオに最適な無料API一覧
- 6 💻 第6章|ポートフォリオ応用例:作品紹介をAPI連携で自動化
- 7 📋 第7章|API活用チェックシート
- 8 💪 第8章|よくあるつまずきと解決策
- 9 🚀 第9章|ポートフォリオにAPIを導入する効果
- 10 🔧 第10章|学習を深めるおすすめ教材
- 11 💡 第11章|まとめ:APIを使うと「作品が情報を持つサイト」に変わる
🌍 第1章|そもそも「API」って何?
API(Application Programming Interface) とは、
「アプリ同士をつなぐ“データの窓口”」のことです。
💡 たとえば、あなたのポートフォリオで:
- 天気情報をリアルタイム表示
- ブログ記事を自動取得
- SNS投稿を表示
- 地図を埋め込む
といったことができるのは、API経由で他サービスのデータを呼び出しているから。
🧩 APIのイメージ図
あなたのサイト
↓ (データをリクエスト)
APIサーバー
↓ (データを返す)
表示画面
つまり、あなたが「欲しい情報」をAPIにリクエストすると、
APIはJSON形式などでデータを返してくれます。
⚙️ 第2章|JavaScriptでAPIを使う基本:fetch関数
JavaScriptには、外部データを取得するための関数 fetch() が標準で用意されています。
💻 基本構文
fetch('APIのURL')
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => console.error('エラー:', error));
fetch()
はPromiseを返す非同期処理なので、.then()
で順にデータを扱います。
🌤 第3章|実践例:天気APIでポートフォリオをアップデート
「ポートフォリオのトップページにリアルタイム天気を表示」してみましょう。
使うのは無料の OpenWeatherMap API。
登録すれば無料でAPIキーを取得できます。
🧾 ステップ1:APIキーを取得
- OpenWeatherMap に登録
- メールでAPIキーが発行される(英数字の文字列)
- そのキーをURLに組み込みます
💻 ステップ2:コード例(JavaScript)
const apiKey = "あなたのAPIキー";
const city = "Tokyo";
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&lang=ja&units=metric`;
fetch(url)
.then(response => response.json())
.then(data => {
const weather = data.weather[0].description;
const temp = data.main.temp;
document.getElementById("weather").textContent =
`${city} の天気:${weather}(${temp}℃)`;
})
.catch(error => console.error("エラー:", error));
💡 HTML部分
<section id="weather-section">
<h2>現在の天気</h2>
<p id="weather">読み込み中...</p>
</section>
これを実装するだけで、ポートフォリオが“動的サイト”に変わります!
💬 第4章|APIを使う上での注意点
注意点 | 内容 |
---|---|
APIキーの管理 | 公開リポジトリにキーをそのまま置かない |
呼び出し回数制限 | 無料APIは回数制限あり(例:1時間100回) |
CORSエラー | APIによってはブラウザから直接アクセス不可 |
データ形式 | JSONかXMLかを確認(ほとんどJSON) |
💡 ポートフォリオで使う場合は、フロントエンド限定の安全なAPIを選びましょう。
🧠 第5章|他にも使える!ポートフォリオに最適な無料API一覧
API名 | 機能 | URL |
---|---|---|
GitHub API | 自分のリポジトリ情報を表示 | https://api.github.com/users/ユーザー名 |
Unsplash API | 無料写真素材を自動取得 | https://unsplash.com/developers |
News API | 最新ニュースを取得 | https://newsapi.org/ |
Joke API | ジョークを表示(海外向け) | https://v2.jokeapi.dev/ |
Google Maps API | 地図を埋め込む | https://developers.google.com/maps |
💬 これらを使えば、「作品紹介ページに動き」や「情報性」をプラスできます。
💻 第6章|ポートフォリオ応用例:作品紹介をAPI連携で自動化
「自分のGitHubリポジトリを自動で表示」してみましょう。
JavaScriptコード例
const username = "あなたのGitHubユーザー名";
fetch(`https://api.github.com/users/${username}/repos`)
.then(res => res.json())
.then(data => {
const list = document.getElementById("repo-list");
data.slice(0, 5).forEach(repo => {
const li = document.createElement("li");
li.innerHTML = `<a href="${repo.html_url}" target="_blank">${repo.name}</a>`;
list.appendChild(li);
});
})
.catch(err => console.error(err));
HTML
<section id="projects">
<h2>My GitHub Projects</h2>
<ul id="repo-list"></ul>
</section>
💡 常に最新の成果物を自動で反映できるので、転職・就職ポートフォリオに最適です!
📋 第7章|API活用チェックシート
項目 | 状態 |
---|---|
APIキーを安全に管理できている | □ |
fetch() の構文を理解している | □ |
JSONデータの中身を読める | □ |
取得データをHTMLに反映できた | □ |
GitHubや天気などでAPI連携を実装した | □ |
✅ 4つ以上チェックがつけば、あなたのポートフォリオは “中級者レベル” に到達しています!
💪 第8章|よくあるつまずきと解決策
悩み | 原因 | 解決策 |
---|---|---|
取得できない(エラー404) | URLやAPIキーのタイプミス | 正確にコピーする |
CORSエラーが出る | APIがブラウザアクセスを許可していない | 代わりにNode.js経由で取得 or Proxyを使う |
データがうまく表示されない | JSONの構造を理解していない | console.log(data) で中身を確認 |
💡 「動かない時に調べる癖」=本当のエンジニア学習です。
🚀 第9章|ポートフォリオにAPIを導入する効果
効果 | 内容 |
---|---|
差別化 | 静的なHTML作品より一歩上の印象 |
実務アピール | API理解は現場スキルに直結 |
成果更新が自動化 | GitHubやニュースAPIで最新情報を反映 |
面接評価アップ | 「技術的好奇心がある」と評価される |
💬 面接官や採用担当は「手を動かしている人」を見抜きます。
APIを扱えるだけで、“使える人” という印象を与えられます。
🔧 第10章|学習を深めるおすすめ教材
リソース | 内容 |
---|---|
MDN fetch() ガイド | 公式で信頼性が高い |
ドットインストール JavaScript API連携編 | 3分動画で実践できる |
Udemy:モダンJavaScript講座 | 実務レベルの非同期処理が学べる |
YouTube: Web Dev Simplified | 海外人気チャンネル(fetch解説あり) |
💡 第11章|まとめ:APIを使うと「作品が情報を持つサイト」に変わる
- APIは「外部データをサイトに取り込む仕組み」
- fetch()を使えば初心者でも扱える
- 天気、GitHub、ニュースなどのAPIでサイトを進化できる
- コード例を真似して、まずは“動く作品”を体験することが大事
💬 静的ポートフォリオから“情報を動かすサイト”へ。
あなたの技術レベルが一段上に進む瞬間です。