Мок-сервер для API за минуту — прямо из перехваченного трафика
Поднимите поддельный API на своём порту: ручки с кодом, заголовками, телом и задержкой, HTTP и HTTPS на одном порту. Работайте, пока бэкенда ещё нет, и держите стабильные ответы для демонстраций и автотестов.
От трафика до мок-сервера
- 1
Перехватите трафик
Поработайте с приложением через прокси — дерево узлов соберёт все адреса, к которым оно обращается.
- 2
Создайте сервер из ветки
Кнопка «Создать мок-сервер из ветки» превращает каждое сочетание метода и пути в ручку с последним перехваченным ответом.
- 3
Запустите и подключите
Сервер поднимается на свободном порту начиная с 9091. Укажите его адрес в приложении вместо настоящего API.
Настоящий API, только ваш
Всё, чтобы клиент не ждал бэкенд, а демонстрация не зависела от тестового стенда.
Несколько серверов сразу
Каждый поддельный сервис на своём порту и со своими ручками: платёжный шлюз на 9091, профиль на 9092.
HTTP и HTTPS на одном порту
Сервер сам различает протокол. Сертификат выпускается корневым сертификатом Microkoi — для localhost, адресов в сети и эмуляторов Android.
Ручки — файлы в git
Сервер — папка, ручка — файл, тело — настоящий JSON или изображение рядом. Большие ответы дают построчный diff.
Журнал обращений
Время, метод, путь, код, сработавшая ручка и адрес клиента. Для запроса без ручки — кнопка «Создать ручку».
Доступ с телефона
Переключатель «Доступ из локальной сети» открывает сервер для телефона, эмулятора и другого компьютера.
Любые файлы в ответе
Изображения, PDF и архивы отдаются как есть, потоком с диска, в том числе как файл для скачивания.
Как это устроено
Ручки с масками и приоритетом
Ручка задаётся методом или «любым» и путём с масками * и **. Если подходят несколько, отвечает самая точная — по тем же правилам, что у моков. На запрос без ручки сервер отвечает 404 с понятным JSON, чтобы сразу было видно, чего не хватает.
- Папки нужны только для порядка: адрес ручки задаётся её путём
- Ручки и папки переносятся перетаскиванием, папку можно включить или выключить целиком
- Работающий сервер подхватывает изменения ручек без перезапуска
- Копия сервера получает свободный порт и собственные копии всех тел
Сервер из ветки трафика
Кнопка у узла или ветки пути в дереве трафика создаёт сервер с ручкой на каждое сочетание метода и пути — с последним перехваченным кодом, заголовками и телом. Ручки раскладываются по папкам сегментов пути, а тела — в файлы с расширением по типу, так что изображения тоже переносятся.
- Служебные заголовки длины, сжатия и соединения не переносятся
- Если ответ был сохранён не полностью или его не было, приложение предупредит
CORS для локальной разработки
Веб-приложение из разработки может обращаться к серверу сразу: запросы с localhost, *.local и адресов частных сетей получают разрешение CORS автоматически. Сайты из интернета его не получают — иначе любая открытая в браузере страница прочитала бы ответы сервера.
- Заголовок Access-Control-*, заданный в ручке, заменяет автоматический
Порты и запуск
Порт выбирается автоматически и проверяется на совпадение с другими серверами пространства и с прокси. Если сервер не запустился — например, порт занят другой программой, — причина видна прямо в списке, а рядом кнопка «Повторить».
- Запущенные серверы поднимаются снова при следующем открытии пространства
- У коллеги, открывшего пространство из репозитория, серверы сами не запустятся и не откроются в сеть
- При переключении пространства серверы прежнего останавливаются
Всё хранится в папке проекта
Сервер хранится так же, как коллекции запросов: папка сервера с файлом server.json, ручки — файлами в папках, тело каждой ручки — файлом рядом. Правки после git pull или изменения тела в редакторе кода подхватываются сразу.
Вопросы и ответы
Чем мок-сервер отличается от мока?
Мок подменяет ответ в прокси: приложение обращается к настоящему адресу, а отвечает Microkoi. Мок-сервер — отдельный API на своём порту: приложение обращается к нему напрямую, как к бэкенду. Моки и мок-серверы не пересекаются.
Можно ли обращаться к мок-серверу по HTTPS?
Да, на том же порту, что и по HTTP: сервер сам различает протокол. Устройство должно доверять корневому сертификату Microkoi — на компьютере он ставится кнопкой на экране трафика, на телефоне — через настройку устройства.
Как подключиться к мок-серверу с телефона или эмулятора?
Включите «Доступ из локальной сети» и используйте адрес компьютера в сети — он показан рядом с сервером. Эмулятор Android обращается к компьютеру по адресу 10.0.2.2.
Можно ли оставлять в ручках данные из трафика?
Пока сервер запущен, его ответы может прочитать любая программа на этом компьютере и страница, открытая с локального адреса. Поэтому настоящие токены и персональные данные в ручках лучше заменить.