Fetch APIでPOSTリクエストを送信するには?

POSTリクエストは、データを更新したり、変更したりする時によく使われています。また、Fetchは非常に汎用されているAPIリクエストライブラリーとして、Fetch APIでPOSTリクエストを送信する必要があるユーザーは少なくありません。そこで本稿では、Fetch APIを用いてPOSTリクエストを送信する方法を解説します。

中村 拓也

中村 拓也

23 7月 2025

Fetch APIでPOSTリクエストを送信するには?

POSTリクエストは、データを更新したり、変更したりする時によく使われています。また、Fetchは非常に汎用されているJavaScriptのAPIリクエストライブラリーとして、Fetch APIでPOSTリクエストを送信する必要があるユーザーは少なくありません。そこで本稿では、Fetch APIを用いてPOSTリクエストを送信する方法を解説します。

button

JavaScriptでのFetch APIとは

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

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

fetch(url, options) 
  .then(response => {
    // responseを処理
  })
  .catch(error => {
    // エラーハンドリング
  });
JavaScriptのFetch APIとは、その使い方を解説!
Fetch APIとは、ブラウザ上のJavaScriptからHTTPネットワークリクエストを行うためのインターフェースとして、Webアプリケーションの開発でよく利用されています。本文では、Fetch APIの基本情報を皆さんに解説した上、Fetch APIの使い方をも詳しく皆さんに紹介します。Fetch APIを使ってみたいが、その使い方が分からない方は、ぜひ本記事を参照してください。

Fetch APIでPOSTリクエストの送信

Fetchは、ブラウザと互換性が良いJavaScript言語ベースのライブラリーとして、現在のブラウザにデフォルトで実装されているため、特にライブラリーをインストールしなくても、直接にブラウザがそれを実行できます。これにより、FetchがWeb開発で広く利用されています。

それでは、Fetch APIでPOSTリクエストを送信するには、どうしたらいいですか?

fetch()メソッドの2番目のパラメータにリクエストの詳細を指定します。

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(data) 
})

ここで、リクエストボディにはJSONデータを設定しています。

FetchでPOSTリクエストのBodyデータを設定

Fetch APIでPOSTリクエストのボディを設定する際に利用できる主なデータフォーマットは以下の通りです。

正常にリクエストを送信するには、ボディ内のデータフォーマットによって、Headerで適切なContent-typeを設定する必要がありますので、要注意!

FetchでJSONデータをPOST

Fetch APIでJSONデータをPostする場合は、次のように、Bodyで具体的なJSONデータを記述して、Bodyで「JSON.stringify(body)」を指定する必要があります。

const body = {
  name: 'John',
  age: 30 
};

fetch(url, {
  method: 'POST',
  body: JSON.stringify(body)
});

FetchでFormDataデータをPOST

FormDataでフォームデータを送信する場合、次のような実装コードになります。

const formData = new FormData();
formData.append('name', 'John');

fetch(url, { 
  body: formData 
});

FetchでバイナリデータをPOST

Blob形式を使うことで、バイナリデータを設定して送信できます。その実装コードは次:

const blob = new Blob([fileData]);

fetch(url, {
  body: blob
});

また、ArrayBufferはLowLevelなバイナリデータを扱えます。

FetchでURLSearchParamsをPOST

URLSearchParamsはGETのクエリ文字列のようにパラメータを設定できます。一方、x-www-form-urlencoded はフォームデータをHTTPリクエストボディに含めるための仕様です。形式は key1=value1&key2=value2 とクエリ文字列と同じですが、スペースは + で表され、一部の文字は % エンコーディングされる点が異なります。

URLSearchParams を使ってフォームデータを構築し、それを x-www-form-urlencoded 形式でエンコードして送信することができます。具体的には以下のようになります。

const formData = new URLSearchParams();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

const body = formData.toString(); // 'key1=value1&key2=value2'

fetch('/path/to/server', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: body
})

URLSearchParams を使うと、フォームデータを構築する際に自動的にエンコーディングされるので、プログラマーが手動でエンコーディングする必要がありません。また、append() メソッドを使えば簡単にデータを追加できるメリットがあります。

上記のように、URLSearchParamsx-www-form-urlencoded 形式のデータを構築する際に便利なツールですが、必須ではありません。文字列操作で同じ形式を構築することも可能です。

このようにFetch APIでは様々なデータをPOSTリクエストのボディに設定して送信できるため、用途に応じたフォーマットを選択できる利点があります。

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

Fetch APIの実装コードを書くのが面倒くさくて嫌だと思っているかもしれません。その場合は、使いやすいAPI管理ツールのApidogを使って、1クリックだけで、APIの定義書からFetch APIの実装コードを生成してくれます。

button

また、Apidogというツールは、非常に直感的なUIでAPIを簡単にテストすることもできるため、APIの疎通確認をした上、Fetchの実行コードを生成することで、作業の効率性もかなり向上できるのではないでしょう。

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

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

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

Fetchの実装コードを生成
button

ApidogでFetch POSTリクエストの実装コードの生成例

次は、ApidogがAPIの定義や仕様に自動生成したFetchの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/424554-0-default/pet", requestOptions)
   .then(response => response.text())
   .then(result => console.log(result))
   .catch(error => console.log('error', error));

現在のブラウザでもFetchライブラリーをプリーインストールされるため、日常的によく使われるChromeかFirefoxなどのブラウザのコンソールの中で、上記のFetch実装コードを直接に実装することもできますね。

まとめ

本記事では、Fetch APIを使ってPOSTリクエストを送信する方法について解説しました。Fetch APIはJavaScriptでのHTTP通信を実現するウェブ標準のインターフェイスです。Promiseベースの非同期設計が大きな特徴で、レスポンスデータもストリーム型で扱えます。また、POSTリクエストの送信にはfetch()に処理の詳細をオプションで指定します。ボディにはJSON、FormData、Blobなど複数のフォーマットを設定できます。

コード生成ツールのApidogを活用することで、API定義からいち早くFetchによる通信処理の実装が可能です。GUIベースで簡単にAPIを操作し、そこからコードを生成できるため大きなメリットがあります。

button

Explore more

OpenClaw(Moltbot/Clawdbot)最新版へのアップデート方法

OpenClaw(Moltbot/Clawdbot)最新版へのアップデート方法

本記事では、OpenClaw(旧Moltbot/Clawdbot)のアップデート作業を安全に実施するための実務的な手順を整理する。更新前のインストールトポロジー確認、バージョン固定、永続データのバックアップ、ランタイム状態の記録といった準備工程に加え、リリースノートを基にしたマイグレーション影響の評価方法を解説する。さらに、プレプロダクションでのステージング検証、Docker Compose・Docker・ソース運用など構成別の更新手順、Apidogを用いたAPIコントラクト検証と回帰テストの実行による整合性維持について扱う。

12 2月 2026

macOS/Windows/LinuxへのOpenClaw (Moltbot/Clawdbot) インストール手順

macOS/Windows/LinuxへのOpenClaw (Moltbot/Clawdbot) インストール手順

本記事ではmacOS、Windows、Linux環境にOpenClaw(Moltbot/Clawdbot)をインストールするための手順を整理し、ランタイムバージョン、環境設定、サービス依存関係の管理ポイントを解説します。ネイティブセットアップとDocker Composeによる構成の違い、代表的なインストールエラーへの対応、導入後のAPI検証やApidogを用いたエンドポイントテストとドキュメント同期の方法も扱います。

11 2月 2026

GPT-5.3-Codexへのアクセス方法

GPT-5.3-Codexへのアクセス方法

GPT-5.3-Codex は、API 駆動型システムにおけるコード生成を主用途とするモデルであり、バックエンド実装やロジック構築に適した特性を持ちます。本記事では、その技術的特徴と適用範囲を整理します。

6 2月 2026

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

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