The Map Local Tool enables you to use the content of local files as a response from your requests, which are matched with your rules.
Map Local Tool could significantly boost your speed development and provide the capability to rapidly test on several edge-cased without explicitly updating the data in your server.
It’s also the must-have tool for QA or Developer if you would like to test the app’s behavior with various responses.
Map from a HTTP Message => Able to change the HTTP Status Code, Headers and Body Content
Map from a Local File => Only change the Body and keep the Headers from the Response
Automatically generate a Local File from a Response from a Selected Request.
Directly Edit the content from the app
Auto validate the HTTP Message format
There are plenty of scenarios in your debugging time when you would try various type of response to test the layout or content from your devices, apps:
Quick Trying new params in responses.
Test the app’s behaviors with different parameters in the responses.
Test the UI layout with unusual contents.
Quick reproduce the bug with specific params in responses.
If the URL of in-coming requests are matching with the pre-defined matching Rule, and the Local file is valid => The body response of those matching requests are automatically replaced with the content of the local file.
If the requests are not matching any rules, the entire Response’s content remains from the server.
You can simply define the rule by a combination of Wildcards and Include subdirectories options.
Top-Down Matching: Incoming requests will be evaluated by Top-Down priority. The Rule in top of the list is the first rule to evaluate.
Asterisk ( * ): Matches any character zero or more times. For example, “api.proxyman.io/v1/*” matches anything beginning with “api.proxyman.io/v1/”, such as “api.proxyman.io/v1/login”, “api.proxyman.io/v1/data” and “api.proxyman.io/v1/”, …
Question mark ( ? ): Matches a single character once. For example, “api.proxyman.io/v?/login” matches api.proxyman.io/v1/login and api.proxyman.io/v2/login
Include subdirectories: All subdirectories will automaitcally match. It’s super convenience if you want to match all paths from the domain. For example: “api.proxyman.io” with ON in “Include subdirectories” matches all URLs, which have “api.proxyman.io” as a domain, such as “api.proxyman.io”, “api.proxyman.io/v1/data”, “api.proxyman.io/login”, “api.proxyman.io/user?name=nghia”, ….
HTTP / HTTPS include: By default, “api.proxyman.io” matches all requests, which have a scheme is HTTP or HTTPS. Otherwise, “http://api.proxyman.io” matches the only HTTP, and “https://api.proxyman.io” matches only HTTPS.
api.proxyman.io, http://api.proxyman.io, https://api.proxyman.io, api.proxyman.io/v1/data, https://api.proxyman.io/v2/login, …
api.proxyman.io/v1/data, https://api.proxyman.io/v1/login, …
* /v1/ *
api.proxyman.io/v1/data, https://producthunt.io/v1/login, …
api.proxyman.io/v1/login, api.proxyman.io/v2/login, …
This table explain what the changes on the Response.
Same Headers from the server. Remove Content-Encoding and Transfer-Encoding. Add X-Proxyman-Map-Local: Path File Update Content-Type: application/json, image/png, text/plain, … depend on type of files
Replace with the local file
Same Header from server
Same Response body from Server
Map Local Tools also offer various ways to quickly manipulate the Rule List and support hotkeys as well.
⌘ + ⌥ + L : Quick open Map Local window.
⌘ + N : New entry
⌘ + E : Edit entry
⌘ + D : Duplicate entry
⌘ + ⌫ : Delete entry
Support Multiple-selection entry
Quick the Local File in Finder or your favorited Editor.
All changes are immediately applied and you don’t need to save.
For matched response, the “Content-Type” will automatically replace with the type of local file. Ex: application/json, image/png, image/jpg, …. So the app will handle the response appropriately.
There are various ways to access the Map Local Tool. If we open Map Local Tool from Domains or flows, it will fill the matching rule automatically.
Map Local Tools Tutorial: https://proxyman.io/blog/2019/08/map-local-feature.html