01 Установка
Бета-версия работает на macOS 13 и новее, Windows 10 и 11 и на Linux. Регистрация и ключ не нужны.
| Система | Что скачать | Что сделать |
|---|---|---|
| macOS | Образ .dmg | Откройте образ и перетащите Microkoi в папку «Программы» |
| Windows | Установщик .exe | Запустите установщик; права администратора не нужны |
| Linux | Пакет .deb или .rpm | Поставьте пакет менеджером пакетов: sudo apt install ./Microkoi-0.9.0-linux-amd64.deb |
Бета собрана без платных сертификатов подписи, поэтому при первом запуске система предупредит о неизвестном разработчике. На macOS откройте приложение через правую кнопку и «Открыть», на Windows нажмите «Подробнее» и «Выполнить в любом случае».
02 Рабочее пространство
Всё, что относится к проекту, Microkoi хранит в папке рабочего пространства: запросы, окружения, моки, заметки и перехваченный трафик. При первом запуске откроется приветственный экран.
| Действие | Сочетание | Что происходит |
|---|---|---|
| Создать пространство | ⌘⇧N | Новая папка с выбранным именем внутри выбранного расположения |
| Открыть папку… | ⌘O | Любая папка становится пространством, существующие файлы не трогаются |
| Недавнее пространство | — | Открывается сразу, в списке до двадцати последних |
Удобнее всего открыть папку внутри репозитория проекта: коллекции, окружения, моки, мок-серверы, мониторы и заметки попадут в git, а база с трафиком будет исключена автоматически.
Те же действия есть в меню «Файл»: там же подменю недавних пространств и «Закрыть пространство» (⌘⇧W). Пространство, которое на этом компьютере открывают впервые, показывает полосу с кнопкой «Доверять»: до этого мок-серверы и мониторы из него не запускаются сами.
03 Запуск прокси
Откройте раздел «Трафик» и нажмите «Запустить». Прокси поднимется на адресе 127.0.0.1 и порту 9090 — порт меняется в настройках. Чтобы прокси запускался сам, включите в настройках «Запускать при открытии пространства».
Весь трафик компьютера
| Система | Где указать прокси |
|---|---|
| macOS | «Системные настройки» → «Сеть» → подключение → «Подробнее…» → «Прокси»: включите «Веб-прокси (HTTP)» и «Защищённый веб-прокси (HTTPS)», сервер 127.0.0.1, порт 9090 |
| Windows | «Параметры» → «Сеть и Интернет» → «Прокси» → «Настройка вручную»: адрес 127.0.0.1, порт 9090 |
| Linux | GNOME: «Настройки» → «Сеть» → «Прокси» → «Вручную»; KDE: «Параметры системы» → «Сеть» → «Прокси». Адрес 127.0.0.1, порт 9090 для HTTP и HTTPS |
Не забудьте выключить системный прокси после отладки: пока Microkoi не запущен, программы, которые идут через него, не смогут выйти в сеть.
Только одна программа
Многие инструменты командной строки и среды разработки читают адрес прокси из переменных окружения. Задайте их в терминале перед запуском программы:
export HTTP_PROXY=http://127.0.0.1:9090
export HTTPS_PROXY=http://127.0.0.1:9090Программам со своим списком доверенных сертификатов укажите файл сертификата Microkoi явно. Например, для curl:
curl --proxy http://127.0.0.1:9090 \
--cacert "$HOME/Library/Application Support/Microkoi/Certificates/microkoi-ca.pem" \
https://api.example.com/v1/users/me04 Корневой сертификат для HTTPS
Чтобы видеть содержимое защищённых соединений, нужен корневой сертификат. Microkoi создаёт его при первом обращении к прокси, и он уникален для вашей установки. Пока сертификат не установлен, HTTPS-запросы видны только по узлу, времени и размеру.
- На экране трафика нажмите «Установить сертификат».
- Подтвердите действие так, как просит ваша система: паролем, окном подтверждения или правами администратора.
- Сертификат Microkoi Root CA появится в хранилище доверенных сертификатов, и программы начнут ему доверять.
| Система | Куда добавляется | Что попросит система |
|---|---|---|
| macOS | Связка ключей пользователя | Пароль учётной записи |
| Windows | Доверенные корневые центры текущего пользователя | Окно подтверждения; права администратора не нужны |
| Linux | Системное хранилище сертификатов | Права администратора; без них Microkoi покажет готовую команду |
На Linux Microkoi дополнительно добавляет сертификат в хранилище браузеров ~/.pki/nssdb, если в системе есть certutil из libnss3-tools. Если доверие нужно на уровне всей системы — например, для служб от другого пользователя, — приложение покажет готовую команду для терминала и кнопку проверки результата.
Удалить сертификат можно в настройках, раздел «Корневой сертификат»: кнопка «Удалить» убирает его из хранилища системы. Соединения с настоящими серверами Microkoi всегда проверяет полностью — режима «доверять всему» нет.
05 Телефон, планшет и эмуляторы
Кнопка «Устройство» на экране трафика открывает пошаговую настройку. Устройство отправляет трафик в Microkoi по Wi-Fi, а обмены появляются в том же списке.
- Включите «Подключения из локальной сети» в диалоге или в настройках прокси. Пока они разрешены, у прокси на экране трафика стоит пометка «в сети».
- В настройках Wi-Fi телефона укажите ручной прокси: адрес компьютера в сети и порт из диалога — их можно скопировать.
- Отсканируйте QR-код или откройте на телефоне http://microkoi.cert: на странице — сертификат и инструкции для iOS и Android.
- Установите сертификат и включите доверие к нему в настройках телефона. Диалог в Microkoi покажет, что устройство подключилось.
Прокси без авторизации доступен любому устройству этой сети, поэтому включайте подключения из сети только в доверенной сети и на время отладки, а сертификат удаляйте с телефона после отладки.
- Эмулятор Android обращается к компьютеру по адресу 10.0.2.2.
- Симулятор iOS использует сетевые настройки самого компьютера.
- На Android приложения доверяют установленному пользователем сертификату, только если это разрешено в network_security_config их отладочной сборки.
06 Фильтр перехвата
Кнопка с воронкой на панели инструментов трафика открывает фильтр текущего пространства. Узел вне фильтра не расшифровывается: соединение идёт сквозным туннелем, а обмены не записываются. Так банки, почта и приложения с привязкой к сертификату продолжают работать во время отладки.
| Режим | Что перехватывается |
|---|---|
| Все узлы | Весь трафик, идущий через прокси; режим по умолчанию |
| Только выбранные | Только узлы из списка |
| Все, кроме выбранных | Всё, кроме узлов из списка |
- api.example.com — только этот узел
- *.example.com — сам домен и все его поддомены
- Можно вставить адрес целиком: https://api.example.com/v1/users превратится в api.example.com
07 Разбор перехваченного
- Поиск работает по адресу, заголовкам и текстовым телам запросов и ответов, фильтры — по классам кода ответа от 2xx до 5xx.
- Кнопка паузы останавливает список, а новые обмены копятся в буфере — их число видно на кнопке.
- Дерево узлов справа фильтрует список щелчком по ветке; повторный щелчок снимает фильтр.
- Панель обмена внизу показывает запрос и ответ рядом. Двойной щелчок по её краю разворачивает панель, Esc возвращает обычную высоту и затем закрывает её.
- Тело ответа копируется одной кнопкой или сохраняется в файл через системный диалог — целиком, даже если на экране показано начало.
- Кнопка «cURL» копирует перехваченный запрос командой для терминала.
08 Точки останова
Точка останова задерживает обмен: запрос — перед отправкой на сервер, ответ — перед отдачей приложению. Пока он стоит, его можно поправить.
- Нажмите «Остановка» в панели обмена — точка встанет на этот метод, узел и путь, сразу на запрос и ответ. Или добавьте правило в списке «Остановки».
- Повторите действие в приложении. Когда обмен остановится, поверх экрана откроется редактор.
- Поправьте метод, адрес, заголовки и тело запроса или код, заголовки и тело ответа.
- Нажмите «Продолжить» (⌘Enter), «Без изменений» или «Прервать» — тогда приложение получит ответ 502.
Обмен ждёт решения не больше 10 минут, потом продолжается без изменений. Общий выключатель «Останавливать обмены» отключает все точки и отпускает всё, что стоит.
09 Первый запрос в API-клиенте
- В разделе «Запросы» нажмите «+» на полосе вкладок.
- Выберите метод и введите адрес. Схему можно не писать: внешние узлы уйдут по HTTPS, localhost — по HTTP.
- Заполните параметры, заголовки, тело и авторизацию на вкладках редактора.
- Нажмите ⌘↩, чтобы отправить; повторное нажатие отменяет выполнение.
- Нажмите ⌘S, чтобы сохранить запрос в коллекцию.
Любой перехваченный обмен открывается в клиенте кнопкой «В запросы», а целую ветку дерева узлов можно сохранить коллекцией кнопкой, которая появляется при наведении.
Команду cURL можно вставить прямо в строку адреса — вкладка заполнится методом, адресом, заголовками и телом. «Импорт cURL» открывает команду новой вкладкой, а «Копировать cURL» собирает команду из запроса с подставленными переменными активного окружения.
10 Окружения и переменные
Окружение — именованный набор переменных. Создайте его в редакторе «Окружения» и выберите на полосе вкладок. Запись {{name}} подставляется в адрес, параметры, заголовки, тело и авторизацию, а переменные могут ссылаться друг на друга.
baseUrl = {{scheme}}://{{host}}
scheme = https
host = api.example.com
GET {{baseUrl}}/v1/orders?requestId={{$uuid}}| Переменная | Значение |
|---|---|
| {{$timestamp}} | Время в секундах Unix |
| {{$isoTimestamp}} | Время UTC в формате ISO 8601 |
| {{$uuid}} | Случайный UUID |
| {{$randomInt}} | Случайное число от 0 до 999 |
Флаг «секрет» скрывает значение в интерфейсе, но не шифрует его на диске. Если окружение лежит в репозитории, значение попадёт в git вместе с ним.
11 Моки
- Выберите обмен на экране трафика и нажмите «Сделать мок» — или нажмите «+» в разделе «Моки».
- Проверьте метод, узел и путь. Мок из трафика создаётся выключенным.
- Задайте код ответа, задержку, заголовки и тело, сохраните ⌘S.
- Включите мок переключателем. Подменённые обмены помечаются в трафике.
| Путь в правиле | Что подходит |
|---|---|
| /api/users/* | /api/users/42, но не /api/users/42/orders |
| /cdn/** | Всё, что лежит под /cdn |
| /**/avatar.png | Файл avatar.png на любой глубине |
Если подходят несколько моков, срабатывает самый точный: путь без масок важнее пути с масками, указанные узел и метод важнее «любого». Моки работают только для узлов, которые перехватывает фильтр пространства.
12 Мок-серверы
Мок-сервер — отдельный API на своём порту, к которому приложение обращается напрямую, как к бэкенду. В отличие от мока, он работает без прокси.
- Наведите на узел или ветку пути в дереве трафика и нажмите «Создать мок-сервер из ветки» — или «+» в разделе «Мок-серверы».
- Проверьте ручки: каждое сочетание метода и пути стало ручкой с последним перехваченным ответом.
- Включите переключатель «Работает». Сервер поднимется на свободном порту начиная с 9091.
- Укажите в приложении адрес сервера, например http://127.0.0.1:9091, вместо адреса настоящего API.
- HTTPS работает на том же порту: устройство должно доверять корневому сертификату Microkoi.
- Для телефона включите «Доступ из локальной сети» и используйте адрес компьютера в сети.
- На запрос без подходящей ручки сервер отвечает 404, а во вкладке «Журнал» у такого запроса есть кнопка «Создать ручку».
13 Мониторинг
- Нажмите значок мониторинга у запроса или папки в дереве коллекций, «В мониторинг» в редакторе запроса или «Мониторинг» в панели обмена.
- Задайте интервал — от 20 секунд до суток — и условия успеха: код ответа, значение по пути в JSON, текст в теле или заголовок.
- Пока приложение открыто, монитор проверяется сам. О падении и восстановлении придёт системное уведомление.
«Проверить все» и кнопка проверки у папки опрашивают сразу много мониторов — удобно после выкладки. У неудачной проверки есть кнопка «Обмен»: она открывает полный запрос и ответ.
14 Заметки
В разделе «Заметки» кнопки «Заметка» и «Папка» создают элементы в корне, а кнопки при наведении на папку — внутри неё. Заметки — обычные файлы .md в папке notes, они сохраняются сами.
| Сочетание | Действие |
|---|---|
| ⌘E | Переключить чтение и правку |
| ⌘S | Сохранить сразу, не дожидаясь автосохранения |
| ⌘⇧F | Поиск по всем заметкам |
| ⌘⇧K | Вставить ссылку на запрос коллекции |
| ⌘B, ⌘I | Жирный и курсив; повторное нажатие снимает оформление |
| ⌘K | Ссылка из выделенного текста |
| Tab, ⇧Tab | Сдвиг строк вправо и влево |
15 Если что-то не работает
| Что происходит | Что сделать |
|---|---|
| HTTPS-запросы видны только по узлу | Установите сертификат кнопкой на экране трафика |
| Приложение выдаёт ошибку защищённого соединения | Скорее всего, оно привязано к своему сертификату. Исключите его узлы фильтром перехвата |
| Прокси не запускается | Порт занят другой программой — выберите другой в настройках. Также проверьте, что открыто рабочее пространство |
| Мок не срабатывает | Проверьте, что прокси запущен, мок включён и сохранён, а его узел перехватывается фильтром |
| Телефон не выходит в сеть через прокси | Проверьте, что включены подключения из сети, телефон и компьютер в одной сети, а в настройках Wi-Fi указан адрес компьютера, а не 127.0.0.1 |
| Нет сети после закрытия Microkoi | Выключите веб-прокси в системных настройках сети |