Увод у алате за дебаговање веб апликација и АПИ-ја
Кључна вештина сваког програмера и систем администратора је ефикасно отклањање грешака у апликацијама, АПИ-јима и сервисима. Познавање правих алата у овоме је од виталног значаја и може значајно уштедети време и нерве.
Шта подразумева процес дебаговања?
Ако сте гледали криминалистичке серије, онда вам концепт дебаговања неће бити непознат. Дебаговање је процес који подразумева различите стратегије. То је методички приступ идентификовању и решавању проблема и грешака унутар програмског кода.
У суштини, дебаговање се бави свим изазовима који могу спречити исправан рад софтвера, или у овом случају, веб апликације. Процес отклањања грешака у вашем АПИ-ју или веб апликацији почиње покушајем да се поново створи проблем.
Ово често захтева слање АПИ захтева, што представља изазов, с обзиром да већина веб прегледача спречава директне модификације изворних заглавља и има ограничења у дужини УРЛ адреса.
Другим речима, за репродукцију проблема, често је неопходно извршити ХТТП манипулације, што захтева употребу специјализованих алата за дебаговање.
Различите компоненте и тактике процеса дебаговања укључују:
- Интерактивно дебаговање
- Анализу тока управљања
- Јединично тестирање
- Интеграционо тестирање
- Анализу лог датотека
- Праћење система
- Меморијске дампове
- Профилисање
Занимљиво је да неки веб прегледачи, који делују као ХТТП клијенти, већ имају интегрисане алате за веб програмере, који се могу користити за дебаговање АПИ-ја. То значи да не морате креирати сопствене алате за дебаговање од нуле.
Шта је ХТТП клијент?
Ако планирате да развијете систем који користи ХТТП протокол за дистрибуирану комуникацију, на пример, веб апликацију, онда је неопходно разумети компоненту ХТТП клијента.
ХТТП (ХиперТект Трансфер Протоцол) је основна технологија која омогућава комуникацију и пренос података на вебу сваки пут када унесете УРЛ. То је протокол апликацијског слоја који је кључан за рад интернета.
ХТТП клијент је систем који шаље захтеве серверу у ХТТП текстуалном формату и заузврат прима одговор од тог истог сервера.
Кључно је разумети разлику између ХТТП клијента и ХТТП сервера.
Разлика између ХТТП клијента и сервера
Док је ХТТП клијент најчешће веб прегледач или помоћни програм, ХТТП сервери функционишу као прокси сервери апликација.
У једноставнијим терминима, ваши паметни телефони, телевизори, играчке конзоле и сваки други уређај који се може повезати на интернет, највероватније користе ХТТП клијент.
ХТТП сервер је мрежни рачунар на који се ХТТП клијент повезује. Њихов однос је двосмеран. ХТТП клијент шаље захтев, а ХТТП сервер одговара на тај захтев.
Примери ХТТП захтева
Захтев | Исход |
GET | Захтева цео ресурс |
HEAD | Захтева ресурс без тела |
POST | Додаје садржај постојећем веб ресурсу |
PUT | Мења постојећи веб ресурс |
DELETE | Уклања одређени ресурс |
TRACE | Приказује промене веб ресурса |
OPTIONS | Приказује доступне ХТТП методе за УРЛ |
CONNECT | Конвертује везу захтева у транспарентни ТЦП/ИП тунел |
PATCH | Делимично мења веб ресурс |
Дебаговање веба никада није било лакше. Са овим алатима, коначно се можете опустити и уживати у свом раду.
Алати за дебаговање ХТТП захтева
HTTPie
Главни циљ HTTPie је да интеракцију са веб сервисима путем командне линије учини интуитивном. Овај алат пружа ХТТП команду за слање захтева, користећи једноставну и природну синтаксу.
HTTPie се може користити за дебаговање, тестирање и комуникацију са ХТТП серверима. Подржава ХТТП, ХТТПС и проксије.
Кључне карактеристике:
- Уграђена подршка за JSON
- Може се инсталирати на Windows, macOS и Linux
- Прилагодљива ХТТП заглавља и методе
- Слање форми
- Оффлине режим
- Основна и сажета аутентификација
- Интуитивна синтакса
Уколико не желите да инсталирате HTTPie локално, можете га покренути онлајн.
Fiddler
Fiddler је прокси алат за дебаговање који ради на више платформи. Помаже вам да анализирате веб сесије, контролишете ХТТПС саобраћај и пратите комуникацију између вашег рачунара и интернета.
Fiddler се може инсталирати на Windows, macOS и Linux. Вероватно је један од најпопуларнијих алата за анализу мрежног саобраћаја.
RESTer
RESTer је доступан као додатак за Google Chrome и Firefox.
Кључне карактеристике:
- Ауторизација заглавља са основном или OAuth2 аутентификацијом
- Преглед историје захтева
- Извршавање захтева са било којом методом, УРЛ-ом, телом и прилагођеним заглављима
- Тестирање и дебаговање АПИ-ја
Paw
Paw је свеобухватан ХТТП клијент који омогућава слање различитих врста ХТТП захтева. Помоћу Paw-а можете тестирати и истраживати нове АПИ-је.
Paw је искључиво развијен за macOS и има кориснички прилагођене функције. Можете увозити и генерисати Swagger, RAML и сл., а такође подржава JSON схеме.
Кључне карактеристике:
- Подршка за различите аутентификације као што су основна, OAuth, Hawk, Digest
- Динамичке вредности
- Окружења
- Проширивост кроз JavaScript засноване екстензије
- Колачићи и управљање сесијама
Requester
Requester је моћан клијент који комбинује функције HTTPie, Postman и Paw. Ради само у оквиру Sublime Text едитора.
Кључне карактеристике:
- Подршка за JSON Schema
- Колекције захтева и историја
- Излаз са истицањем синтаксе
- Модеран кориснички интерфејс
- Једноставно подешавање колачића, прилагођених заглавља, тела захтева и параметара упита
- Подршка за GraphQL
Postman
Ако често радите са АПИ-јима, Postman ће вам постати омиљени алат. То је један од најпопуларнијих ХТТП клијената за дебаговање веб апликација, који омогућава бржи и лакши развој АПИ-ја.
Кључне карактеристике:
- Моћан ГУИ са интуитивним корисничким интерфејсом
- Историја захтева
- Аутоматизовано тестирање путем рунера колекција
- Флексибилно праћење АПИ-ја
- Подршка за REST, GraphQL, SOAP
- Подршка за различите корисне уносе, укључујући JSON и HTML
cURL
cURL је алат командне линије који се користи за слање података користећи УРЛ синтаксу.
cURL је подразумевано инсталиран на већини оперативних система заснованих на UNIX-у. Подржава различите протоколе, укључујући FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS и SCP.
Charles Proxy
Као што име сугерише, Charles Proxy је ХТТП и реверзни прокси, који ради тако што преусмерава локални саобраћај кроз себе.
Charles се може користити за SSL прокси, ограничење пропусног опсега, AJAX дебаговање, тачке прекида и још много тога.
Whistle
Whistle је алат за дебаговање на више платформи, заснован на NodeJS-у. Користи се за снимање и манипулацију ХТТП, ХТТПС, WebSocket и TCP саобраћаја.
Прво треба да инсталирате NodeJS, а затим Whistle користећи npm:
npm install -g whistle
Функционалност се може проширити помоћу додатака, ако подразумеване функције не испуњавају ваше захтеве.
mitmproxy
mitmproxy је популарни прокси отвореног кода за ХТТПС који се често користи у областима безбедности. Можете га користити као алат командне линије, веб апликацију или Python API.
Веб интерфејс има изглед и осећај Chrome DevTools-а. Такође подржава HTTP/2.
Proxyman
Слично као Paw, Proxyman је премиум прокси апликација за macOS за дебаговање веба.
Proxyman делује као „човек у средини“ за веб саобраћај и нуди бројне функције, укључујући:
- SSL прокси
- Понављање захтева
- Протобуф
- Скриптовање поновног писања
- Локално и удаљено мапирање
- Филтрирање садржаја
- Истицање синтаксе
Proxyman кориснички интерфејс је врло интуитиван.
HTTP Toolkit
HTTP Toolkit је дебагер отвореног кода за ХТТП, доступан као десктоп апликација за Windows, Mac и Linux.
За разлику од других ХТТП алата за дебаговање, HTTP Toolkit обезбеђује аутоматско циљано пресретање за одређене клијенте, укључујући подешавање ХТТПС-а, уместо да пресреће сав саобраћај са целог рачунара. На овај начин се избегава хватање непотребног саобраћаја или ометање других апликација.
Једним кликом можете пресрести саобраћај из прозора прегледача (укључујући Chrome, Firefox и друге), позадинских језика/скрипти као што су Node.js, Python и PHP, алата командне линије, Electron апликација или Android уређаја и емулатора. HTTP Toolkit подржава стандардне функције дебаговања ХТТП-а, укључујући тачке прекида и поновно писање ХТТП(С) саобраћаја, филтрирање и претрагу прикупљеног саобраћаја и форматирање за различите формате тела захтева и одговора. Основне функције за пресретање, инспекцију и преписивање ХТТП(С) су бесплатне, док напредне функције захтевају плаћени налог.
Закључак
Наведени ХТТП клијенти и прокси алати за дебаговање веба могу вам помоћи у многим аспектима. Већина њих је бесплатна или нуди пробне периоде, тако да можете испробати неколико и пронаћи оне који вам највише одговарају.
Срећно са решавањем проблема!