# Map Local（ファイル）

> Proxyman の Map Local を使うと、ローカルファイルをリクエストへのレスポンスとして返せます。ステータスコード、ヘッダー、ボディを自由に設定できるので、API をすばやくモックできます。

## 1. 概要 {#1-whats-it}

Map Local ツールを使うと、ローカルファイルの内容をリクエストに対する HTTP レスポンスとして利用できます。

> **備考:** Scripting Tool を使えば、**GraphQL** に対しても Map Local を実行できます（[Snippet Code](https://proxyman.com/docs/ja/scripting/snippet-code#map-local-with-graphql)）。
>
> **Map Local と Breakpoint を組み合わせる**と、レスポンスの内容をその場で変更できます（2.16.0 以降）。

## 動画 {#video}

[Video: Map Local で API レスポンスをモックする](https://proxyman.com/videos/map-local) (25 seconds)

## 2. メリット {#2-benefits}

* ステータスコード、ヘッダー、ボディを指定したレスポンスを定義し、任意のリクエストにマッピングできます。サーバーの更新を待たずにエッジケースをテストできます。
* **ローカルファイルで偽の API をモックする**: まだ本番環境にないテスト用の API を試せます。 

![Local File モードで 200 OK の JSON レスポンスを設定した、GET https://httpbin.proxyman.app/get 向けの Proxyman Map Local エディタ](https://proxyman.com/docs/assets/proxyman-map-local-editor.jpg)

_Map Local エディタ_

### HTTP メッセージから設定する {#with-an-http-message}

1. メインテーブルでリクエストを右クリックし、**Tools** -> **Map Local…** を選択します。Proxyman は現在のレスポンスを使って新しいルールを作成します。
2. ステータスコード、ヘッダー、JSON ボディを必要に応じて変更します。
3. 完了です。
4. リクエストを再送信します。新しいレスポンスがマッピングされます。

### ローカルファイルから設定する {#with-a-local-file}

* **Select Local File** ボタンをクリックし、任意のファイルを選択します。テキスト、JSON、バイナリ、画像ファイルに対応しています。

### \<FILE\_URL> フラグで設定する {#with-file_url-flag}

* 指定したファイルにマッピングしつつ、ステータスコードとレスポンスヘッダーも設定できます。
* JSON、テキスト、バイナリ、画像などで使用できます。
* クライアントがレスポンスを正しく読み取れるよう、`Content-Type` ヘッダーを必ず設定してください。

```json
HTTP/1.1 200 OK
Content-Type: application/json

<FILE_URL="~/Desktop/myjson.json">
```

## 3. 使い方 {#3-how-to-use}

1. レスポンスがすでにあるリクエストを右クリックし、**Tools** -> **Map Local…** を選択します。Proxyman は現在のレスポンスボディを使ってルールを作成し、ファイルを Proxyman 独自の Map Local フォルダに保存します。このフォルダを確認または変更するには、Map Local ウィンドウで **More** をクリックし、**Default Local File Folder** を選択します。
2. エディタでレスポンスボディを直接変更します。
3. リクエストを送信し、新しいレスポンスボディを確認します。

![現在のレスポンスを使って Map Local ルールを作成する](https://proxyman.com/docs/assets/proxyman-map-local-context-menu.jpg)

_現在のレスポンスを使って Map Local ルールを作成する_

![Default Local File Folder を開いた Proxyman Map Local の More メニュー。Choose Folder、Use Default Folder、Reveal in Finder が表示されている](https://proxyman.com/docs/assets/proxyman-map-local-default-folder.jpg)

_Default Local File Folder_

## 4. GraphQL リクエストで Map Local を使う {#4-map-local-with-graphql-requests}

Proxyman 2.27.0 以降では、特定の QueryName を指定して、Map Local で GraphQL リクエストを扱えます。詳しくは以下の GraphQL のドキュメントをご覧ください。

- [Proxyman での GraphQL デバッグ](https://proxyman.com/docs/ja/advanced-features/graphql)

## 5. Scripting Tool で Map Local を使う ✅  {#5-map-local-with-scripting-tool--}

**複雑なルール**で Map Local を使いたい場合は、[Scripting](https://proxyman.com/docs/ja/scripting/script#1-whats-it) をご覧ください。同じ結果をより簡単に得られます。

JavaScript でローカルファイルをマッピングする方法は、こちらの [Snippet Code](https://proxyman.com/docs/ja/scripting/snippet-code#2-common-on-request-and-response) をご覧ください。

## さらに詳しく {#learn-more}

* [Proxyman の Map Local ツールで HTTP レスポンスを操作する方法](https://proxyman.com/posts/2019-08-03-map-local-feature)
* [GraphQL リクエストのローカルレスポンスをマッピングするには？](https://proxyman.com/posts/2021-01-24-How-To-Map_Response_For_GraphQL_Requests)
