【入門編】【裏技】ブラウザ開発者ツールでWeb APIのリクエスト内容を書き換えてレスポンスをテストする方法 – デバッグ・コード品質・テストツール生産性向上バイブル

API開発の「あのイライラ」をすべて消し去る魔法の技術へようこそ!

フロントエンドの開発を進めているとき、こんな壁にぶつかったことはありませんか?

  • 「APIのこのフィールドが `null` で返ってきたときの表示崩れを確認したいけれど、テストデータをデータベースに仕込むのが面倒くさい……」
  • 「サーバーサイドの実装が遅れていて、APIがまだ動かない。でもフロントエンドの画面は完成させてテストしたい!」
  • 「本番環境だけで起きているバグを再現したいけれど、本番のAPIレスポンスをローカルに持ってくるのが難しい……」

データベースの値を書き換えたり、モックサーバーをわざわざNode.jsで立ち上げたり、コードの中に一時的な `if` 文を埋め込んだり……。こうした作業は、私たちの開発の「リズム」を狂わせる大きな要因になります。

これらをすべて「ブラウザの中だけで、1行のコードも書き換えずに、しかも完全に安全に」解決する方法があります。

それが、モダンなブラウザ(ChromeやEdgeなど)のデベロッパーツールに搭載されている「Local Overrides(ローカル・オーバーライド)」という機能です。

この記事では、この強力な機能を今日から実務で使いこなせるよう、その仕組みから、具体的なセットアップ、そして実践的なデモまで、優しく、かつ技術的な本質に迫りながら解説します。これをマスターすれば、あなたの毎日のコーディングとデバッグの効率は劇的に向上しますよ!

—

なぜLocal Overridesなのか? ツール内部の「超合理的」な仕組み

世の中には、APIをモックするためのツール(MSWやMockoon、Charles、Fiddlerなど)がたくさん存在します。それらがあるにもかかわらず、なぜブラウザの「Local Overrides」を学ぶべきなのでしょうか?

その秘密は、ブラウザ内部の「リクエスト割り込み(インターセプト)位置」にあります。

通常、ブラウザがサーバーにWeb API(FetchやXMLHttpRequest)をリクエストすると、下図のような経路をたどります。

[ブラウザJSエンジン] ──(Request)──> [ネットワーク層] ──> [インターネット] ──> [APIサーバー]
[ブラウザJSエンジン] <──(Response)── [ネットワーク層] <── [インターネット] <── [APIサーバー] 「Local Overrides」を有効にすると、ブラウザのネットワーク層の直前に「仮想のプロキシ(プロキシファイルシステム)」が割り込みます。

[ブラウザJSエンジン] ──(Request)──> [ネットワーク層] ──> (サーバーには送らない/送った後に横取り)
│
[Local Overrides] (あなたのPC上のフォルダ)
│
[ブラウザJSエンジン] <──(偽のResponse)───┘ この仕組みがもたらすメリットは計り知れません。 1. CORS(Origin制約)の回避
モックサーバーを別ポート(`localhost:3000`など)で起動すると、CORSエラーに悩まされることがよくあります。Local Overridesは「同一のAPIリクエスト」のレスポンスをブラウザの内部で差し替えるため、CORSの設定変更が一切不要です。
2. HTTPS(暗号化通信)の障壁がない
本番環境(`https://…`)の通信であっても、ブラウザの内部で複合された後のデータを書き換えるため、SSL証明書の作成やプロキシ設定といった面倒な作業が不要です。
3. コードを1文字も汚さない
テスト用のコード(`if (process.env.NODE_ENV === ‘development’) …` のような条件分岐)をプロダクションコードに混入させる必要がありません。Gitのコミットを汚す心配もゼロです。

—

準備:まずは実験用の「ミニマムな環境」を作ろう

百聞は一見に如かず。実際に動かして、その圧倒的な便利さを体感してみましょう!
まずは、簡単なAPIを呼び出して画面に表示する「Hello World」的なHTMLファイルを1つ用意します。

ローカルの適当な場所に `index.html` という名前で以下のファイルを保存してください。





Local Overrides 極限デモ




このファイルをブラウザ(Chromeを推奨)でダブルクリックして開いてみてください。
無事に「Leanne Graham」といったダミーのユーザー情報が表示されれば、準備は完了です!

—

3ステップで設定:APIレスポンスを書き換える「Local Overrides」の実践

それでは、この `https://jsonplaceholder.typicode.com/users/1` から返ってくるデータを、サーバー側には一切触れずに、ブラウザ上で書き換えてみましょう。

ステップ 1:オーバーライド専用の「空のフォルダ」をPCに作成する

まず、デスクトップなど任意の場所に、空のフォルダを作成してください。
名前はなんでも構いません(例: `devtools_overrides`)。

このフォルダの中に、ブラウザが「書き換えたデータ」を自動的に保存していくことになります。

ステップ 2:DevToolsで「Overrides」を有効化する

1. 作成した `index.html` を開いているブラウザ画面で、`F12` キー(Macは `Cmd + Option + I`)を押して DevTools(開発者ツール) を開きます。
2. DevToolsの上部メニューから 「Network(ネットワーク)」 タブを選択します。
3. 画面に何も表示されていない場合は、一度ページをリロード(`Ctrl + R` または `Cmd + R`)して、APIリクエスト(`1` という名前のリクエスト)が走るのを確認してください。
4. 次に、DevToolsの 「Sources(ソース)」 タブを開きます。
5. 左側のパネルにある二重矢印 `>>`(非表示メニュー)をクリックし、「Overrides(オーバーライド)」 を選択します。

※見当たらない場合は、左側パネルの「Page」や「Filesystem」の並びにある「Overrides」を探してください。

![Overrides設定イメージ](https://images.unsplash.com/photo-1542831371-29b0f74f9713?auto=format&fit=crop&w=600&q=80)
(※デバッガの内部設定を触る際は、このOverridesタブが司令塔になります)

6. 「+ Select folder for overrides(フォルダを選択してオーバーライドを許可)」 というボタンをクリックし、先ほどステップ1で作成した空のフォルダ(`devtools_overrides`)を選択します。
7. ブラウザの上部に「DevTools がローカルディレクトリへのフルアクセスを求めています」という警告が表示されるので、「許可(Allow)」 をクリックします。

これで、ブラウザとあなたのPCのフォルダが安全に同期されました。準備万端です!

—

ステップ 3:レスポンスを書き換えてみよう(最新のモダンな方法)

現在のChromeでは、Networkタブから直接APIレスポンスを書き換えることができます。これが最も直感的でエラーの少ない方法です。

1. 「Network(ネットワーク)」 タブに戻ります。
2. 名前が `1` となっているAPIリクエストを右クリックします。
3. コンテキストメニューから 「Override content(コンテンツをオーバーライド)」 を選択します。

すると、自動的に「Sources」タブの「Overrides」エディタが開き、APIから返ってきた生データ(JSON)が表示されます。

ここで、データを以下のように自由に書き換えてみましょう!

{
“id”: 1,
“name”: “超凄腕アーキテクト(あなたです!)”,
“username”: “super_architect”,
“email”: “architect@example.com”,
“address”: {
“street”: “Kulas Light”,
“suite”: “Apt. 556”,
“city”: “Gwenborough”,
“zipcode”: “92998-3874”,
“geo”: {
“lat”: “-37.3159”,
“lng”: “81.1496”
}
},
“phone”: “090-1234-5678”,
“website”: “VIPゴールド会員(テスト書き換え)”,
“company”: {
“name”: “Romaguera-Crona”,
“catchPhrase”: “Multi-layered client-server neural-net”,
“bs”: “harness real-time e-markets”
}
}

書き換えたら、`Ctrl + S`(Macは `Cmd + S`)を押して保存します。
保存すると、ファイル名の横にあった紫色の丸いインジケータが落ち着き、ローカルフォルダに書き換え用のデータが保存されたことを示します。

—

精度高いHelloWorldの「動作確認」

それでは、本当に書き換わったのかテストしてみましょう!

1. ブラウザの画面に戻り、「データを再取得」 ボタンをクリックします。
2. 画面の表示を確認してください。

どうでしょうか!サーバーに通信が飛んでいる(Networkタブにはリクエストが表示されている)にもかかわらず、画面に表示されたのは、先ほどあなたが書き換えた 「超凄腕アーキテクト」 と 「VIPゴールド会員(テスト書き換え)」 という名前になっていますね!

さらに、Networkタブをよく見てみてください。
リクエストの左側に「紫色の警告(矢印)マーク」がついているはずです。これは、「このリクエストはローカルのファイルによってオーバーライドされていますよ」というデバッガからの親切なサインです。

—

実務で真価を発揮する「プロの現場での応用パターン」

このLocal Overridesの強力さは、単なる値の書き換えに留まりません。現場のエンジニアが実際に使っている、強力な3つの応用パターンをご紹介します。

パターンA:エラー系(500 Internal Server Error)のモック検証

フロントエンドを開発する際、「APIが500エラーを返したときに、画面がクラッシュせずに正しいエラーメッセージを出せるか」の検証は必須です。

これも、Local Overridesなら一瞬でシミュレートできます。

1. Networkタブで、先ほどの `1` のリクエストを右クリックし、今度は 「Override headers(ヘッダーをオーバーライド)」 を選択します。
2. 右側の「Header overrides」パネルが表示されます。
3. ここで `status code` を `200` から `500` に書き換えて保存します。

これで、APIを叩くたびにブラウザは「500 Server Error」を受け取ったと錯覚し、JavaScriptの `catch` ブロックが走り、安全にエラー表示のテストが行えます。

パターンB:本番環境のCSS/JSを書き換えて「緊急バグ修正」のシミュレーション

本番環境のサイト(例えば自社のコーポレートサイトなど)で表示崩れが起きたとき、手元にソースコードがなくても、Local Overridesを使えば本番の `main.js` や `style.css` をローカルに引き込み、ブラウザ上で直接コードを修正して、「これで直るか」を本番と同じ環境で検証できます。

修正が成功したら、その書き換えたコードをそのままGitのリポジトリに反映すれば良いのです。修正の手戻りがほぼゼロになります。

—

アーキテクトからのアドバイス:モックツールとの賢い使い分け

Local Overridesは極めて強力ですが、すべてのケースでこれを使うのが正解というわけではありません。プロのアーキテクトとして、以下の使い分けをおすすめします。

  • MSW (Mock Service Worker) や Mockoon を使うべきとき:
  • チーム全体で共通の「モックAPI定義」を共有したいとき。
  • 自動テスト(JestやCypress)とモックデータを共通化したいとき。
  • Local Overrides を使うべきとき:
  • 開発初期やデバッグ中に、「今すぐその場で1分以内に」特定のデータを書き換えて挙動を見たいとき。
  • 本番環境やステージング環境など、自分たちがコードを直接デプロイできない環境の不具合を調査・修正したいとき。

この2つをツールボックスに入れ、状況に応じてサッと使い分けることこそが、モダンでスマートなエンジニアの姿です。

まとめ

今回学んだ「Local Overrides」は、ブラウザを単なる「コードの実行環境」から「究極のデバッグサンドボックス」へと進化させる強力な機能です。

  • 同一オリジン・HTTPSを気にせず割り込める
  • サーバーやソースコードを一切汚さない
  • レスポンスデータ(JSON)だけでなく、ステータスコードやヘッダー、CSS/JSすら書き換え可能

これを一度覚えてしまえば、APIの準備を待って手が止まることも、テストデータの作成に何時間も奪われることもなくなります。

「毎日のコーディングを劇的に楽にする」ための第一歩として、ぜひ明日からの実務プロジェクトで、この「紫色のマーク」を呼び出してみてください。開発の景色がガラリと変わるはずです!

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