PR

【JavaScript】fetch APIとは?GETとPOSTの使い方を初心者向けに解説

JavaScriptのfetch APIについて解説する記事のアイキャッチ画像 JavaScript

JavaScriptでAPI通信を学ぶときに、最初によく出てくるのが fetch API です。結論からいうと fetch API は、JavaScriptからサーバーへリクエストを送り、レスポンスを受け取るための仕組み です。

ただ、初心者のうちは「APIとは何か」「GETとPOSTは何が違うのか」「なぜ response.json() が必要なのか」でつまずきやすいです。この記事では、その前提から順番に整理していきます。

ポイント fetch API は「データを取りに行く」「データを送る」というブラウザ側の処理を書くときに使います。

スポンサーリンク

結論: fetch API を理解するには「リクエスト」と「レスポンス」を押さえるのが先です

用語意味
APIアプリ同士でデータをやり取りするための窓口
リクエスト「このデータをください」「このデータを送ります」とお願いすること
レスポンスサーバーから返ってくる結果
JSONデータをやり取りするときによく使う形式

まずは「fetch API の書き方」ではなく、「ブラウザからサーバーへお願いをして、その返事を受け取る」という流れをイメージすると理解しやすいです。

1. fetch API とは何か

fetch API は、ブラウザの JavaScript からサーバーへ通信するときに使う機能です。たとえば、ユーザー一覧を取得したり、フォームの内容を送信したりするときに使います。

基本の形はとてもシンプルで、URLを指定して fetch() を呼びます。

fetch("https://example.com/api/users");

ただし、これだけでは「通信を始めた」だけです。返ってきたデータを使うには、そのあとの処理も必要になります。

2. GET は「データを取得する」ときに使います

GET は、サーバーからデータを受け取るときによく使う方法です。たとえば「ユーザー一覧を取得したい」という場面です。

fetch("https://example.com/api/users")
  .then(response => response.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.log(error);
  });

このコードは、次の順番で動いています。

  1. fetch() でサーバーへリクエストを送る
  2. 返ってきたレスポンスを response.json() で JSON として読む
  3. 読み取ったデータを data として使う

初心者が混乱しやすいのは、responsedata が別物だという点です。response は返事全体、data はその中身と考えるとわかりやすいです。

3. POST は「データを送る」ときに使います

POST は、サーバーへ新しいデータを送信したいときによく使います。たとえば、会員登録フォームの内容を送る場面です。

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

POST では、次の3つをよく使います。

  • method: どんな種類の通信かを指定する
  • headers: データ形式を伝える
  • body: 実際に送るデータを書く

JavaScriptのオブジェクトをそのまま送るのではなく、JSON.stringify() で文字列に変換して送る点も大切です。

4. エラー処理では response.ok も確認しましょう

fetch API では、通信自体は成功していても、HTTPの結果が 404 や 500 になることがあります。そのため、catch だけでなく response.ok も確認するのが安全です。

fetch("https://example.com/api/users")
  .then(response => {
    if (!response.ok) {
      throw new Error("通信に失敗しました");
    }
    return response.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.log(error.message);
  });

ここは初心者が見落としやすいポイントです。「fetch が動いた」ことと、「欲しい結果が正しく返った」ことは別 だと覚えておきましょう。

5. async/await で書くとさらに読みやすくなります

fetch API は Promise を返すので、async/await と組み合わせることもできます。実務ではこちらの形で書くことも多いです。

async function loadUsers() {
  try {
    const response = await fetch("https://example.com/api/users");

    if (!response.ok) {
      throw new Error("通信に失敗しました");
    }

    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.log(error.message);
  }
}

上から順番に読めるので、初心者でも処理の流れをつかみやすいです。

6. よくあるつまずき

response.json() の結果はその場ですぐ取れるわけではありません

response.json() も Promise を返します。だから thenawait で受け取る必要があります。

POST で JSON.stringify() を忘れない

JavaScriptのオブジェクトをそのまま body に入れるのではなく、JSON文字列に変換して送るのが基本です。

catch だけで安心しない

通信エラーだけでなく、HTTPステータスの失敗も考えるなら response.ok の確認が必要です。

関連して読みたい記事

まとめ

まとめ fetch API の基本

  • fetch API は、JavaScriptからサーバーへ通信するための仕組みです。
  • GET は取得、POST は送信で使うことが多いです。
  • レスポンスの中身は response.json() で読み取ります。
  • エラー処理では catch だけでなく response.ok も意識すると安全です。
  • async/await と組み合わせると、コードの流れを追いやすくなります。

fetch API は、JavaScriptでデータのやり取りをするうえでとても基本的な機能です。まずは「取得する」「送る」「エラーを確認する」の3つを丁寧に押さえるところから始めると理解しやすいです。

タイトルとURLをコピーしました