INDEX
Fetch APIとは?

Fetch APIは、JavaScriptでサーバーと非同期通信を行うための標準APIです。従来のXMLHttpRequestよりもシンプルで扱いやすく、現在では新しいWeb開発で広く利用されています。
例えば、ニュース一覧や商品情報などをサーバーから取得し、ページを再読み込みすることなく画面を更新する際に利用されます。
Fetch APIと非同期通信
Fetch APIでは、fetch()を実行するとPromiseが返されます。サーバーからレスポンスが返ってくるまでJavaScriptの実行を止めることなく、他の処理を続けることができます。
取得したデータは、.then()やasync/awaitを使って受け取ります。
Fetch APIの基本的な使い方
基本的な流れは次のようになります。
fetch()でサーバーへリクエストを送信する。- レスポンスを受け取る。
response.json()などでデータを取得する。- 取得したデータを利用する。
- エラーが発生した場合は
catch()で処理する。
fetch("https://jsonplaceholder.typicode.com/posts/1")
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error("エラー:", error);
});
この例では、指定したURLからJSONデータを取得し、コンソールへ表示しています。
Fetch APIを使った実用例
ボタンをクリックしてデータを取得し、画面へ表示する例です。
HTMLコード
<button onclick="fetchData()">データを取得する</button>
<pre id="response"></pre>
JavaScriptコード
function fetchData() {
fetch("https://jsonplaceholder.typicode.com/posts/1")
.then(response => {
if (!response.ok) {
throw new Error("HTTPエラー: " + response.status);
}
return response.json();
})
.then(data => {
document.getElementById("response").textContent =
JSON.stringify(data, null, 2);
})
.catch(error => {
document.getElementById("response").textContent =
"エラー: " + error.message;
});
}
ボタンをクリックすると、サーバーからデータを取得し、その内容を画面へ表示します。
async/awaitを使った書き方
現在では、async/awaitを使って記述することも一般的です。同期処理のように読みやすく記述できます。
async function fetchData() {
try {
const response = await fetch(
"https://jsonplaceholder.typicode.com/posts/1"
);
if (!response.ok) {
throw new Error("HTTPエラー: " + response.status);
}
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
現在のJavaScriptでは、async/awaitのほうが可読性が高いため、多くのプロジェクトで採用されています。
Fetch APIのポイント
- Promiseを返すため、
.then()またはasync/awaitで処理する。 - HTTPエラー(404や500など)は自動では例外にならないため、
response.okで確認する。 - JSONを取得する場合は
response.json()を使用する。 - 文字列を取得する場合は
response.text()を使用する。 - ページを再読み込みせずにデータを更新できる。
主なレスポンス取得メソッド
| メソッド | 取得するデータ |
|---|---|
response.json() |
JSONデータ |
response.text() |
文字列 |
response.blob() |
画像やファイルなどのバイナリデータ |
response.arrayBuffer() |
ArrayBuffer形式のデータ |
response.formData() |
FormData形式 |
まとめ
- Fetch APIは、サーバーと非同期通信を行うための標準APIである。
fetch()はPromiseを返す。.then()またはasync/awaitで結果を取得する。response.okでHTTPエラーを確認することが重要である。- JSONデータは
response.json()で取得する。 - 現在では
async/awaitを使った記述が一般的である。