Тема обміну даними між клієнтом та сервером вкрай важлива для розуміння. Будь ти fullstack, frontend, backend чи mobile розробник – принципи взаємодії з іншими частинами програмного продукту маєш розуміти. З метою сформувати таке розуміння ми розібрали технічну сторону протоколу передачі даних та підхід до його ефективного використання. Тож мітап “Mastering HTTP & REST” був насичений корисною інформацією та позитивними емоціями :).
HTTP
Для початку Віталій Кобрін розповів про принципи протоколу передачі гіпертексту, тобто HTTP. Ми розібрали структуру URL, основні HTTP методи, заголовки та коди відповідей. Вкотре зробили акцент на тому, що протокол цей текстовий (до версії 2.0) і розсекретили для студентів всю “магію” його роботи. Багато активності викликала частина доповіді, присвячена безпечності та ідемпотентності HTTP запитів, а точніше різних HTTP методів. Розглянули різні методи аутентифікації на рівні HTTP: Basic, Digest. Bearer. А на останок розібрали принципи роботи кешування та згадали про HTTPS та HTTP/2.0.
REST
В другій частині ми вже поглянули на HTTP з точки зору побудови API для комунікації між клієнтом та сервером. Тут Олександр Стефановський виділив основні можливості та переваги Representational State Transfer архітектури. Знову ж таки, розвіяли всі домисли навколо поняття REST та зробили акцент на тому, що це набір правил та рекомендацій у використанні максимуму можливостей HTTP для побудови вашого API. Ми розібрали поняття ресурсів та представлень і детальніше познайомились з правильним найменуванням ресурсів.
Інструменти
Для роботи з HTTP та тестування REST API ми на практиці розглянули застосування декількох інструментів.
Почали з найпоширенішого – curl. Він встановлений за замовченням на більшості операційних систем. Також дуже часто використовується для опису документації з використання REST API.
Хоч curl і дуже розповсюджений, та не “номер 1” у зручності інструмент для тестування JSON REST API. Натомість, можна скористатись httpie. Він має інтуїтивний CLI інтерфейс, вдалі налаштування за замочуванням, підсвітку відповідей та вбудовані можливості для авторизації на різних популярних ресурсах.
Якщо ви ще не готові до використання інструментів в терміналі та вам потрібен комфорт звичного графічного інтерфейсу – Postman стане вашим тимчасовим порятунком (адже всі шляхи ведуть в термінал ;). З ним ви зможете не тільки здійснювати звичні запити за допомогою графічного інтерфейсу, а й зберігати шаблони запитів в хмарці.
А якщо вам необхідно за 30 секунд створити фейковий REST API сервер – json-server вам в поміч. JSON файл з початковими даними для кожної колекції та одна команда в консолі – і от у вас вже є локально піднятий додаток, готовий відповідати на типові запити. На додачу ви отримаєте можливість тестувати вибірку по критерію, пагінацію та повнотекстовий пошук.
Інтерактив
Інтерактив був найгарячішим та веселим! Я аж плакав від сміху! Наші гості розділилися на дві команди та мали спроектувати REST API для блогу. Як визначились з API, розділились на клієнтів та серверів. Клієнти у своїх браузерах, роль яких виконували блокноти, писали від руки HTTP запити (щоб ще раз переконатись і запам’ятати, що це текстовий протокол – ніякої магії) і відправляли їх на сервер. А ті, в свою чергу, ледь встигали відповідати 400 BAD REQUEST – бо ж на початку клієнти постійно в запиті про щось забували :). Та, врешті-решт, нам вдалося створити нову публікацію та залишити коментарі! І добряче повеселитись! 🙂
До зустрічі на наступних InterLink Meetup ;)!
Post A Reply