Не знаете, как смотреть API-запросы в режиме реального времени? Держите классный инструмент - Charles
➡ Принцип работы
Charles – сниффер (sniffer – перехватчик) HTTP/HTTPS трафика. Работает как прокси-сервер: вклинивается в цепочку «Клиент - Сервер», перехватывает все запросы и отображает их в интерфейсе программы
Работает для веб и мобилки, но наиболее эффективно для мобильных приложений, т.к. для веб проще посмотреть запросы через WebTools. Однако для работы нужна будет дебаг-сборка приложения, а не прод – там запросы закрыты
Есть еще другие снифферы: Proxyman, Fiddler, Wireshark. Суть одна, отличаются интерфейсом, набором функций и платформами
➕ В Charles мне понравились следующие фишки:
• Можно увидеть порядок вызова запросов
• Отображается полная информация о запросе и ответе
• Можно подменить запрос и посмотреть, что будет
⚠ Однако есть и некоторые трудности
• Сложно настраивать. У меня Charles работает только на Android, на iOS трудности с сертификатами
• Громоздкий интерфейс – легко потеряться
• Бесплатная версия на 30 дней, а потом ограничение по времени работы
➡ Когда Charles пригодится СА
• При онбординге на проект
• При изучении задачи на доработку/улучшение фичи
• При выявлении багов и изучении проблемы
➡ Мой опыт
Использовал Charles на трех проектах, все мобильные приложения. На двух из них восстанавливал документацию, на третьем нужно было понимать, как дорабатывать существующую функциональность – что нужно изменить в запросе, в каком порядке вызывать новый
Благодаря прокси наглядно видел, в каком порядке вызываются запросы, какие из доки уже устаревшие, какой реальный ответ от сервера приходит
⬇ Итог
Если вы работаете с мобильным приложением, и вам непонятно, как оно работает с технической стороны – качайте дебаг-сборку и установите Charles или любой другой proxy
Также делюсь статьей с Хабра про установку на все платформы и обзор функциональности Charles
————
Как думаете, пригодится в работе?
👍 Да, нужно попробовать
🤷♂️ Нет, не потребуется
#инструменты_системный_анализ
