Моки API прямо в прокси — без отдельного сервера
Подменяйте ответы сервера, не трогая бэкенд и не перенастраивая приложение. Приложение получает заданный код, заголовки и тело, а запрос на сервер не уходит.
Мок за полминуты
- 1
Найдите запросы
Выберите в трафике обмен или отметьте флажками нужные ветки в дереве узлов — моки получатся сразу для всех.
- 2
Нажмите «Сделать мок»
Мок получит тот же метод, узел, путь и последний перехваченный ответ. Создаётся он выключенным — ничего не подменится раньше времени, а повторное нажатие не плодит дубли.
- 3
Поменяйте и включите
Задайте нужный код, тело и задержку, сохраните ⌘S и включите переключателем.
Что проверяют моками
Всё, что сложно или долго воспроизвести на настоящем сервере.
Редкие ошибки
500, 503, 429 с Retry-After — посмотрите, как приложение переживёт сбой, которого нет на тестовом стенде.
Медленные ответы
Задержка в миллисекундах покажет, как ведут себя индикаторы загрузки и тайм-ауты.
Пустые списки
Пустая корзина, нет уведомлений, нет результатов поиска — без подготовки тестовых данных.
Неготовые эндпоинты
Опишите ответ по договорённости с бэкендом и начинайте работу над клиентом сразу.
Истёкшая сессия
Подмените ответ на обновление токена и проверьте, как приложение выходит из учётной записи.
Моки из дерева узлов
Кнопка у ветки создаёт по моку на каждое сочетание метода и пути внутри, а режим выбора собирает их из разных веток за раз.
Видно в трафике
Подменённый обмен помечается в таблице, а кнопка с именем мока открывает его в редакторе.
Как это устроено
Правила с масками пути
Мок срабатывает по методу, узлу и пути. Метод и узел можно оставить пустыми — тогда подходит любой. В пути звёздочка заменяет один сегмент, две звёздочки — любой хвост.
- /api/users/* подходит для /api/users/42, но не для /api/users/42/orders
- /cdn/** — всё, что лежит под /cdn
- /**/avatar.png — файл с таким именем на любой глубине
- Параметры после знака вопроса не учитываются, узел сравнивается без учёта регистра и порта
Срабатывает самый точный
Если подходят несколько моков, выигрывает самый конкретный: путь без масок важнее пути с масками, больше точных сегментов важнее меньшего, указанный узел и метод важнее «любого». Ручная сортировка не нужна, и результат не зависит от порядка файлов.
Дерево моков и группы
Моки показываются списком или деревом по узлу и сегментам пути: api.example.com › v1 › orders › GET Список заказов. Кнопка у узла или папки включает все моки внутри, если выключены все, и выключает, если включён хотя бы один.
- Так группа моков, собранная из трафика, включается одним нажатием, когда сервер недоступен, и так же выключается
- Корзина у ветки удаляет все моки внутри после подтверждения, где названо их число
- Папки дерева отражают адрес, а не место хранения: путь меняется в редакторе, и мок сам переезжает в нужную ветку
- Поиск идёт по имени, методу, узлу и пути, а ветки с совпадениями раскрываются целиком
Моки — это файлы
Каждый мок хранится файлом .mock.json в папке mocks рабочего пространства, а тело ответа — отдельным файлом рядом: настоящим JSON, изображением, PDF или архивом. Всё это попадает в git вместе с запросами и заметками. Переименование мока меняет имена файлов, но не ломает ссылки на него из трафика.
- Тело можно задать текстом или выбрать любой файл; изображение показывается превью
- Переключатель «Отдавать как файл для скачивания» добавляет нужный заголовок
- Правка файла тела в другом редакторе и моки из git подхватываются сразу
- Испорченный файл пропускается и не ломает список
- Моки разных пространств не пересекаются
Редактор предупреждает заранее
Если мок не сможет сработать, об этом видно сразу: когда прокси остановлен или когда узел мока не перехватывается фильтром пространства. Для тела в JSON редактор проверяет синтаксис и умеет его отформатировать.
- Правки вступают в силу после сохранения, переключатель включает мок сразу
- При переходе к другому моку с несохранёнными правками приложение спросит, сохранить ли их
Вопросы и ответы
Нужно ли поднимать отдельный мок-сервер?
Для моков — нет. Они работают внутри прокси Microkoi: приложение, которое идёт через прокси, получает подменённый ответ по тому же адресу, что и обычно. Если же нужен отдельный API на своём порту, к которому приложение обращается напрямую, — для этого есть мок-серверы.
Уходит ли запрос на настоящий сервер, когда срабатывает мок?
Нет. Прокси отвечает вместо сервера, а обмен записывается в трафик с телом запроса вашего приложения, ответом мока и временем с учётом задержки.
Почему мок не срабатывает?
Проверьте, что прокси запущен и что узел мока перехватывается фильтром пространства: соединение с исключённым узлом идёт сквозным туннелем, и подменить в нём ответ невозможно. Редактор мока предупреждает об обеих ситуациях.
Можно ли поделиться моками с командой?
Да. Моки хранятся файлами в папке mocks рабочего пространства — закоммитьте их, и коллеги получат те же правила.