カテゴリ: React 更新日: 2026/01/03

Fetch APIとは?Reactでの使い方をやさしく解説|サーバー通信の基本を理解しよう

Fetch APIとは?基本の仕組みと特徴を解説
Fetch APIとは?基本の仕組みと特徴を解説

先生と生徒の会話形式で理解しよう

生徒

「Reactでサーバーとやり取りする方法ってあるんですか?」

先生

「ありますよ!よく使われるのが『Fetch API』という仕組みです。」

生徒

「Fetch APIってなんですか?初めて聞きました…」

先生

「では、初心者でもわかるように、Fetch APIの仕組みとReactでの使い方をじっくり説明していきましょう!」

1. Fetch APIとは?

1. Fetch APIとは?
1. Fetch APIとは?

Fetch API(フェッチ・エーピーアイ)は、JavaScriptでサーバーと通信するための機能です。ウェブページからサーバーにデータを取りに行ったり、サーバーへデータを送信したりすることができます。

たとえば、天気予報のサイトで「今の天気」をリアルタイムで取得したい場合や、アンケートの送信ボタンを押して回答をサーバーに送る場合などに使われます。

「API(エーピーアイ)」とは、Application Programming Interfaceの略で、簡単にいうと「アプリとアプリをつなぐ橋渡し役」です。

Fetch APIは、そんなAPIと通信するための仕組みです。

2. ReactでFetch APIを使う理由

2. ReactでFetch APIを使う理由
2. ReactでFetch APIを使う理由

Reactは、画面を部品のように組み立てる「コンポーネントベース」の仕組みです。その中で、外部からデータを読み込んで画面に反映させる必要があります。

たとえば、ニュースアプリを作るときに、サーバーから記事の一覧を取得して表示したり、検索機能でサーバーにキーワードを送って結果を表示したりします。

こうした通信処理に最適なのがFetch APIなのです。

3. 基本的な使い方を見てみよう

3. 基本的な使い方を見てみよう
3. 基本的な使い方を見てみよう

ここでは、ReactでFetch APIを使って外部データを取得する簡単な例を紹介します。


import React, { useEffect, useState } from "react";

function App() {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch("https://api.example.com/data")
      .then((response) => response.json())
      .then((json) => setData(json))
      .catch((error) => console.error("通信エラー:", error));
  }, []);

  return (
    <div>
      <h1>サーバーから取得したデータ</h1>
      <pre>{JSON.stringify(data, null, 2)}</pre>
    </div>
  );
}

export default App;
(画面に「サーバーから取得したデータ」と表示され、APIから受け取ったデータが画面に反映されます)

4. Fetch APIの特徴とは?

4. Fetch APIの特徴とは?
4. Fetch APIの特徴とは?

Fetch APIには、以下のような特徴があります。

  • 非同期通信ができる:待っている間も画面は止まらない
  • Promiseを使う:処理が完了したら次の動作を行う仕組み
  • 柔軟に使える:GETやPOSTなど、さまざまな通信に対応
  • 簡潔なコード:複雑な処理を少ない行数で記述できる

特に「非同期(ひどうき)」という言葉は難しく聞こえるかもしれませんが、「同時進行できる」と考えればOKです。

5. JSONとは?なぜ使うの?

5. JSONとは?なぜ使うの?
5. JSONとは?なぜ使うの?

Fetch APIでよく出てくる「response.json()」という部分、気になりますよね?

JSON(ジェイソン)とは、サーバーとやりとりするためのデータの形式(ルール)です。
中身はテキスト形式で、「名前」と「値」をセットにして情報を表します。

たとえば:


{
  "name": "田中",
  "age": 30
}

このように、読みやすく、扱いやすいのが特徴です。

6. データの送信(POST)もできる

6. データの送信(POST)もできる
6. データの送信(POST)もできる

Fetch APIは、サーバーからデータを取ってくるだけでなく、サーバーにデータを送ること(POST)もできます。

たとえば、フォームから入力された名前を送信したい場合:


fetch("https://api.example.com/submit", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ name: "田中" }),
})
  .then((res) => res.json())
  .then((data) => console.log(data));

このようにして、サーバーと双方向のやりとりが可能になります。

7. 通信エラーの対処方法

7. 通信エラーの対処方法
7. 通信エラーの対処方法

インターネットが不安定だったり、APIのURLが間違っていると、Fetch APIでエラーが発生することがあります。

そんなときは、.catch()を使って、エラー内容を表示したり対処できます。


fetch("https://api.example.com/data")
  .then((res) => res.json())
  .then((data) => console.log(data))
  .catch((error) => {
    console.error("エラーが発生しました:", error);
  });

ユーザーに「エラーが起きました」と知らせる画面を作っておくのも、親切ですね。

8. よくあるエラーと注意点

8. よくあるエラーと注意点
8. よくあるエラーと注意点

初心者がよく間違えるポイントも紹介しておきます。

  • URLが間違っている:httpsのスペルやドメイン名に注意
  • responseをJSONにしていないresponse.json() を忘れがち
  • useEffectの書き方:Reactでは通信処理はuseEffect()の中に書くのが基本
  • セキュリティ設定:CORSという制限に引っかかる場合がある(※これは高度な内容なので今は気にしなくて大丈夫)

まとめ

まとめ
まとめ

Fetch APIは、Reactで外部データを扱う際に欠かせない重要な仕組みであり、サーバーと通信して情報を取得したり送信したりする場面で幅広く利用されます。今回の記事では、Fetch APIとは何か、そしてReactのコンポーネント内でどのように利用すればよいのかを、具体的なコード例とともに丁寧に確認してきました。特にuseEffectと組み合わせてデータ取得を行う方法は、実際の開発でも頻繁に登場する基本パターンであり、初心者がしっかり身につけておきたい大切なポイントです。

また、Fetch APIにはPromiseによる非同期処理の概念が深く関わっており、サーバーの返答を待つ間も画面を止めずに動作できる柔軟性を持っています。非同期処理は最初こそ難しく感じられますが、thenやcatchの流れを理解することで、通信成功時と失敗時の処理を明確に書けるようになります。さらに、JSONというデータ形式を理解しておくことで、受け取ったデータをReactの状態として扱い、画面に動的に反映させる仕組みが自然に理解できるようになります。

記事の後半では、POSTリクエストを使ってサーバーにデータを送信する方法も紹介しました。method、headers、bodyといった設定項目の意味を把握すれば、問い合わせフォームや会員登録機能など、さまざまなアプリケーションに応用できます。また、通信エラーの種類や対処方法についても触れ、初心者がつまずきやすい部分を事前に知っておくことで、エラーが発生した際にも落ち着いて状況を把握できるようになります。

URLの間違い、JSON変換の抜け、useEffectの依存配列、CORSの仕組みなど、Fetch APIを扱う中で覚えておきたい注意点は多くありますが、これらはReactで通信を行う上で自然と身についていきます。大切なのは、ひとつひとつの仕組みを理解しながら実際に手を動かし、Fetch APIがどのようにサーバーとやり取りをしているかを体感することです。ReactとFetch APIを組み合わせた通信処理は、アプリケーション開発における強力な武器となり、外部サービスとの連携やデータ管理の幅を大きく広げてくれます。

サンプルプログラムの振り返り

以下はFetch APIとuseEffectを組み合わせた基本的なサンプルです。データ取得、JSON変換、エラー処理までの流れがひと目で確認できます。


import React, { useEffect, useState } from "react";

function FetchSample() {
  const [items, setItems] = useState([]);
  const [error, setError] = useState(null);

  useEffect(() => {
    fetch("https://api.example.com/items")
      .then((res) => {
        if (!res.ok) {
          throw new Error("サーバーエラーが発生しました");
        }
        return res.json();
      })
      .then((data) => setItems(data))
      .catch((err) => setError(err.message));
  }, []);

  return (
    <div className="card p-3">
      <h2>取得データ一覧</h2>

      {error && <p style={{ color: "red" }}>エラー:{error}</p>}

      {items.length > 0 ? (
        <ul>
          {items.map((item) => (
            <li key={item.id}>{item.title}</li>
          ))}
        </ul>
      ) : (
        <p>データを読み込み中です...</p>
      )}
    </div>
  );
}

export default FetchSample;

このサンプルは、通信が成功した場合の表示とエラー時の表示を明確に分けており、実務でも役立つ構成になっています。データ取得の流れが整理されているため、Fetch APIの特徴を理解しやすく、初心者が練習するのにとても適したコードです。

先生と生徒の振り返り会話

生徒「Fetch APIってもっと難しいものだと思っていましたが、流れを理解すると意外とシンプルですね!」

先生「そうなんです。データを取ってきて、JSONに変換して、状態にセットする。この基本さえ身につければ応用がどんどんできますよ。」

生徒「Reactで通信するときはuseEffectの中に書くのがポイントなんですね!」

先生「その通りです。コンポーネントの初回レンダー時に通信したい場合は必ずuseEffectを使います。」

生徒「エラーの扱いも学べてよかったです。catchを使って原因を確認できるのが安心ですね。」

先生「エラー時の動作をしっかり用意しておくと、ユーザーにとっても親切なアプリになりますよ。」

生徒「Fetch APIとReactを組み合わせると、外部サービスと連携できる幅が広がるのが面白いです!」

先生「その通り。自由度が高いので、ぜひ自分のアプリでも活用してみてくださいね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Fetch APIとは何ですか?JavaScriptやReactでの役割は何ですか?

Fetch APIとは、JavaScriptを使ってサーバーと通信するための仕組みです。Reactで外部からデータを取得したり、サーバーにデータを送信したりする際によく使われます。
カテゴリの一覧へ
新着記事
New1
React
Reactコンポーネントの再利用と分割を完全マスター!初心者でもわかるコンポーネント設計
New2
React
ReactでAxiosインターセプターの使い方を完全ガイド!初心者でもわかるリクエストとレスポンスの処理方法
New3
React
JSXの書き方!初心者でもわかるReactタグと属性の基本ルール解説
New4
React
ReactとDockerを使った開発環境構築の基本を徹底解説!初心者でもわかるReactとDockerの連携方法
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.4
Java&Spring記事人気No4
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.5
Java&Spring記事人気No5
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介