Ответ
Обе функции в Charles Proxy используются для подмены сетевых ответов, но с разными целями.
-
Map Local заменяет ответ от удаленного сервера содержимым локального файла. Используется для тестирования с фиксированными или специфическими данными.
- Пример: Подмена ответа API
GET /api/userлокальным JSON-файломmock_user.json. - Как настроить:
Tools→Map Local→ добавить правило для URL и указать локальный файл.
- Пример: Подмена ответа API
-
Map Remote перенаправляет запрос с одного URL на другой (изменяет хост, путь или порт). Используется для проксирования запросов на другие среды (например, staging).
- Пример: Перенаправление всех запросов к
production-api.example.comнаstaging-api.example.com. - Как настроить:
Tools→Map Remote→ задать исходный и целевой URL.
- Пример: Перенаправление всех запросов к
| Сравнительная таблица: | Критерий | Map Local | Map Remote |
|---|---|---|---|
| Цель | Подмена ответа статичными данными из файла. | Перенаправление запроса на другой сервер. | |
| Использование | Тестирование UI/логики с заранее заданными данными (успех/ошибка). | Работа с альтернативной средой (dev, staging) без изменения кода клиента. | |
| Данные | Статические (содержимое файла). | Динамические (ответы реального сервера). |
Пример JSON-файла для Map Local:
{
"status": "success",
"data": {
"id": 123,
"name": "Test User"
}
} Ответ 18+ 🔞
А, слушай, вот этот Чарльз Прокси, блядь, инструмент! Там две штуки, которые вроде как одно и то же делают, но нихуя не одно и то же, ёпта. Map Local и Map Remote. Сейчас разберём, а то мозг ебёт.
Map Local — это когда ты, сука, говоришь: «А пошёл ты нахуй, сервер, со своими ответами! У меня тут свой файлик есть, я с ним работать буду». Берёшь запрос, например, GET /api/user, и вместо того, чтобы реально на сервер лезть, Чарльз подсовывает тебе содержимое какого-нибудь mock_user.json с твоего же диска. Полная статика, блядь. Хочешь проверить, как твоё приложение отреагирует на успех, ошибку или ебанутый ответ в пять мегабайт — пожалуйста, нахуярил файл и подменил. Удобно как сука.
Map Remote — это уже другая история, блядь. Это не подмена ответа, а перенаправление самого запроса, ёпта. То есть ты говоришь: «Все запросы, которые шли на production-api.example.com, теперь идут на staging-api.example.com». Сервер-то другой, живой, он тебе динамические ответы шлёт. Используется, когда нужно потестить на стейджинге, но лень в приложении конфиги менять. Просто перекинул трафик и поехал, в рот меня чих-пых.
Короче, табличка для наглядности, а то совсем уже:
| Критерий | Map Local | Map Remote |
|---|---|---|
| Суть | Подмена ответа данными из файла на компе. | Перенаправление запроса на другой адрес. |
| Зачем | Тестить интерфейс или логику на фиксированных данных (успех, ошибка, пиздец). | Работать с другой средой (дев, стейджинг) без правок в коде. |
| Что получаешь | Мёртвый статичный файл. | Живой ответ от другого сервера. |
Ну и пример файлика для Map Local, чтобы было понятно, что туда пихать:
{
"status": "success",
"data": {
"id": 123,
"name": "Test User"
}
}
Вот и вся магия, блядь. Одна штука — для моков, другая — для перенаправления. Главное, не перепутай, а то будешь на стейджинг мокать статику и охуевать, почему ничего не меняется.