ReactでFetchを使ってAPIからデータを取得

ReactでフロントエンドのWebページを開発する際、Fetch APIを使用してAPIとのデータ通信を実現するのが一般的なパターンです。それでは、本文では、ReactでFetch APIを使って、APIとの連携を実現する方法を紹介した上、一番使いやすいAPI管理ツールを使って、APIの定義から直接にFetch APIのクライアントコードを生成してReactで適用する方法をも紹介しようと思います。

中村 拓也

中村 拓也

12 5月 2025

ReactでFetchを使ってAPIからデータを取得

ReactでフロントエンドのWebページを開発する際、Fetch APIを使用してAPIとのデータ通信を実現するのが一般的なパターンです。それでは、本文では、ReactでFetch APIを使って、APIとの連携を実現する方法を紹介した上、一番使いやすいAPI管理ツールを使って、APIの定義から直接にFetch APIのクライアントコードを生成してReactで適用する方法をも紹介しようと思います。Fetch APIのクライアントコードの書くのが面倒くさいと思っている開発者は、この便利なツールをお見逃しないでください。

button

ReactとFetch APIについて

本論に入る前に、まずはReactとFetch APIということを簡単に紹介していみたいと思います。

Reactとは

ReactはUIを構築するためのJavaScriptライブラリです。Facebookが開発し、Instagramや多くの有名サービスで利用されています。主に次のような特徴があります:

開発者がDOM操作ではなくアプリケーションロジックに集中できるよう設計されています。大規模アプリやSPAに向いている点が特徴です。ReactはViewだけを担当するので、通常は他のライブラリと組み合わせて使われます。

Fetch APIとは

そもそもFetch APIとは何かを見に行きましょう。FetchはJavaScript でHTTP ネットワークリクエストを行うためのインターフェイスです。現在、Fetch APIは、iOSやAndroidなどのモバイルアプリ開発においてもFetchは必要不可欠なAPIとして使用されています。主に次のような特徴があります。

基本的な使い方は下記のようになります。

fetch(url, options) 
  .then(response => {
    // responseを処理
  })
  .catch(error => {
    // エラーハンドリング
  });

ReactとFetch APIとの併用について

ReactでフロントエンドのWebページを開発する際、Fetch APIを使用してAPIとのデータ通信を実現するのが一般的なパターンです。その理由としては、ReactはView層にフォーカスしたUI構築ライブラリであり、データ取得や状態管理などアプリケーションのロジックを担う部分は明示的に外部の機能として分離されることが多いからです。その役割を担うのがサーバーサイドのAPIです。ユーザーアクションに対応して表示内容を動的に変化させるには、外部からデータを取得して反映させる必要があります。

そこで、Fetchを使用することで、Reactのコンポーネント内から直接APIにアクセスできるようになり、複雑なデータ同期をコンポーネント単位でカプセル化できます。

こうしたReactとFetchによる実装は、UIとデータをスムーズに同期することを可能にするファクターの1つとして、Webアプリケーション開発で広く採用されている主流なアプローチといえます。

ReactでFetch APIの利用シーン

上記の内容から、ReactでなぜかFetch APIが利用される原因がわかるようになったのでしょう。それでは、この部分では、ReactでFetch APIが多く利用される具体的なシーンを皆さんに紹介していこうと思います。 ReactでFetch APIを利用する主な場合は以下の通りです。

APIを呼び出してデータを取得する場合

フォームの送信時にAPIを呼び出す場合

ページ遷移時にデータをFETCHして画面を初期化する場合

定期的にデータの更新をチェックする場合

ユーザーアクションに対する応答としてAPIを呼び出す場合

このようにSPA上でのデータ取得や状態遷移に応じた通信制御のためにFetchが利用されます。コンポーネントライフサイクルと合わせて非同期処理を適切に扱える必要があるため重要な技術といえます。

Fetch APIの実装コードの自動生成

Reactを使ってフロントエンドのWebページなどを開発している中、Fetch APIの実装コードを書くのが面倒くさくて嫌だと思っているかもしれません。その場合は、使いやすいAPI管理ツールのApidogを使って、1クリックだけで、APIの定義書からFetch APIの実装コードを生成してくれますので、そのコードを直接にReactで適用することができます。

button

Apidogは、YAML、JSON、CURL、Postmanなどのデータフォーマットにも対応しておりますので、これらのデータを直接にApidogにインポートすれば、API定義書が生成されます。そして、それぞれのAPI定義書に基づいて、Reactで利用可能なFetch API実装コードを簡単に生成できます。

Apidogにインポート

ApidogでFetch APIの実装を生成する手順

ステップ⒈Apidogで実装したいAPIをクリックして、右側パネルで「コード生成」にガーソルを置き、「クライアントコードを生成」を選択します。

Apidogクライアントコードの生成

ステップ⒉コード生成ウィンドウで、「JavaScript」を選択し、「Fetch」を選択すると、当該APIのFetch実装コードを生成してくれます。

Fetchの実装コードを生成
button

GETリクエストの実装コード例

var myHeaders = new Headers();

myHeaders.append("User-Agent", "Apidog/1.0.0 (https://apidog.com)");

var requestOptions = {

​    method: 'GET',

​    headers: myHeaders,

​    redirect: 'follow'

};

fetch("http://127.0.0.1:3658/m1/360626-0-default/pet/findByStatus?status=", requestOptions)

​    .then(response => response.text())

​    .then(result => console.log(result))

​    .catch(error => console.log('error', error));

POSTリクエストの実装コード例

var myHeaders = new Headers();

myHeaders.append("User-Agent", "Apidog/1.0.0 (https://apidog.com)");

var urlencoded = new URLSearchParams();

urlencoded.append("name", "Hello Kitty");

urlencoded.append("status", "sold");

var requestOptions = {

​    method: 'POST',

​    headers: myHeaders,

​    body: urlencoded,

​    redirect: 'follow'

};

fetch("http://127.0.0.1:3658/m1/360626-0-default/pet", requestOptions)

​    .then(response => response.text())

​    .then(result => console.log(result))

​    .catch(error => console.log('error', error));
button

ReactでFetch APIの実装コードを適用

Apidogを使って、Fetch APIの実装コードを生成すると、それを直接にReactで利用することができるようになります。 Reactをまだパソコンにインストールしていない場合は、次の方法を参照してまずパソコンにインストールする必要があります。

Reactのインストール方法

Reactをインストールする主な方法は以下の通りです:

// NPMを利用する場合
npm install react react-dom

// Yarnを利用する場合  
yarn add react react-dom

Reactをインストール後、import文を利用してReactをインポートできるようになります。

import React from 'react';
import ReactDOM from 'react-dom';

// Reactコードをここに記述

ReactをインポートしてFetch APIを実装

例えば、上記のFetch APIのPOSTリクエストの実装コードをReactで利用する場合は、useEffectフック内で呼び出すことができます。

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

function MyComponent() {

  useEffect(() => {
    var myHeaders = new Headers();
    myHeaders.append("User-Agent", "Apidog/1.0.0 (https://apidog.com)");
    
    var urlencoded = new URLSearchParams();
    urlencoded.append("name", "Hello Kitty");
    urlencoded.append("status", "sold");
    
    var requestOptions = {
      method: 'POST',
      headers: myHeaders,
      body: urlencoded,
      redirect: 'follow'
    };

    fetch("http://127.0.0.1:3658/m1/360626-0-default/pet", requestOptions)
      .then(response => response.text())
      .then(result => { 
        // 成功時の処理
      })
      .catch(error => console.log('error', error));

  }, []); // 1回だけ実行

  return (
    <div>
      {/* ここに表示 */}  
    </div>
  );
}

useEffectの第二引数に空配列を渡すことで、コンポーネントマウント時に1回だけFetchを呼び出します。Promiseのthenメソッド内でレスポンスを取得し、状態更新や画面反映の処理を記述できます。

以上のように、Fetch APIのPOSTをReactと組み合わせて利用できます。

はい、記事の最後にApidogをまとめる部分を追加しました:

まとめ

Reactでのフロントエンド開発において、外部APIとのデータ連携は必須の要件です。Fetch APIを使ってAPIコールを実装することが一般的なスタイルとなっています。しかしFetchを利用した通信コードの実装には大変な手間がかかり、生産性の低下につながりかねません。

その点、Apidogを利用することでOpenAPIから自動生成したFetchコードを活用できるため、開発効率の大幅な向上が期待できます。コード自動生成というアプローチは、単に手間の削減だけでなく、信頼性や保守性といった品質面の担保にも有効です。React開発者にとってApidogは、外部連携をスムーズかつスケーラブルに実現する強力なパートナーといえるでしょう。ぜひ活用を検討してみてください。

button

Explore more

MindsDB: あらゆるITユーザーのための万能MCPサーバー

MindsDB: あらゆるITユーザーのための万能MCPサーバー

MindsDBは、200以上のデータソースへの接続を容易にし、AIアプリの構築やインサイトの探索をプロのように実現します。さらなるデータソースの接続や、APIdogでのAPIドキュメント化をお試しください。

26 5月 2025

IT初心者必見!Google Drive MCPサーバーでAIを強化する方法

IT初心者必見!Google Drive MCPサーバーでAIを強化する方法

MCPサーバーは、AIをソフトウェア開発でより効果的なパートナーにし、生産性を向上させます。Google Drive MCPサーバーはAIのデータ統合を簡素化し、API開発ではApidog MCPサーバーが重要な役割を果たします。

22 5月 2025

2025最新:Node.jsでWebSocketを利用する

2025最新:Node.jsでWebSocketを利用する

WebSocketはブラウザとサーバー間のリアルタイムな双方向通信を可能にする技術です。Node.jsでwsモジュールを使って、WebSocket通信を簡単に実現することができます。本文では、Node.jsでWebSocketを利用する方法を紹介します。必要な方はぜひこの記事の内容を参照してください。

12 5月 2025

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる