loader

Що таке API

Мережа інтернет на сьогодні налічує безліч вебпроєктів різноманітної тематики та призначення. Саме вебпроєктів, а не сайтів, бо з ними можуть взаємодіяти не тільки кінцеві користувачі, але й інші системи. Коли користувач відкриває сайт і бачить в ньому завантажену сторінку, відбувається “спілкування” систем між собою за допомогою API (Application Programming Interface - Прикладний програмний інтерфейс). За весь час розвитку таких інтерфейсів стало зрозуміло, що кожен розробник робить щоразу все на свій смак. Тому цей підхід органічно структурувався, виділилися спільні риси та підходи. Наразі якщо в проєкті необхідно розробити будь-який подібний інтерфейс, вигадувати власний “велосипед” немає потреби.

Що таке API без технічних деталей

Розглянемо усе більш детально. Будь-який браузер, перш ніж показати будь-яку сторінку сайту, спочатку робить запит на сервер, де ця сторінка знаходиться. Сервер віддає цю сторінку браузерові й він її показує. Подібним чином здійснюється запит картинок, стилів, скриптів, шрифтів та будь-яких інших файлів. Крім того, сервери можуть генерувати відповідь в онлайні, наприклад показати поточну дату та час, або вивести список товарів, інформація по яким знаходиться в базі даних.

У процесі “спілкування” систем одна система повинна також створити запит інформації, що лежить на сервері, і отримати відповідь. Подібно до звичайних сторінок, відповідь може бути згенерована програмним кодом. Далі інформація запиту обробляється належним чином, наприклад в додатку на телефоні показується список завантажених файлів.

За допомогою таких запитів-відповідей можна не тільки щось отримувати, але й створювати (наприклад, створювати нового користувача), модифікувати (наприклад, змінювати пароль для користувача), або видаляти (наприклад, видаляти підписку на розсилання новин поштою).

Для того, щоб написати будь-який API, сьогодні не потрібно все робити з нуля. Є багато фреймворків або готових рішень, які дозволяють розробляти API, а головне – його можна буде розширювати.

Для чого можна використовувати API

Коротко – для всього. Всі великі проєкти працюють через API (фейсбук, пошук у гуглі, ютуб). Цей перелік можуть доповнити усі мобільні застосунки, термінали, онлайн оплати, безліч різних сервісів, які ви можете підключити до вашого проєкту, наприклад, відправлення повідомлень на електронну пошту або створення ТТН у сервісі доставки.

Тобто, коли ви хочете розробити мобільний застосунок, вам необхідно розробляти API, за допомогою якого мобільний застосунок буде “спілкуватися” з вашим проєктом. Або вам потрібно інтегрувати у свій магазин автоматичне оновлення цін від постачальника. Це також можна зробити шляхом створення спеціалізованого API. Або якщо ви маєте намір додати у ваш проєкт автоматичний переклад контенту, вам необхідно інтегрувати API системи перекладів.

Є ще один цікавий кейс, коли потрібно розробляти API. Це проєкти, у яких весь інтерфейс користувача написаний таким чином, щоб інформація показувалася без перезавантаження сторінки. Яскравим прикладом може бути поштовий клієнт Gmail. У цьому випадку браузер забиратиме необхідну інформацію «у фоні», а не перезавантажуватиме цілу сторінку.

Чи можливо подивитися як працюють запити та відповіді?

Можливо. Для цього є декілька варіантів. Перший – розробники можуть інтегрувати в cиcтему Swagger, що дозволяє переглядати документацію по API та тестувати запити. Або можна встановити спеціальне ПО, яке підтримує відправлення запитів та перегляд відповідей. Наприклад, Postman. Або розробити власне ПО для цих потреб.

У своїй роботі ми зазвичай використовуємо інтеграцію Swagger. Такий підхід значно спрощує процес комунікації між розробниками та надає наглядний інструмент для роботи.

Робота після запуску

Після того як API було розроблено, налаштовано та інтегровано в необхідну програму, наприклад, мобільний додаток, настає момент його активного використання. На початку цього, зазвичай, виявляються неточності, несправності, а також виявляється просідання по швидкості роботи. Просідання по швидкості роботи – це результат того, що проєктом користується велика кількість людей, і сервери не справляються з такими навантаженнями. Це може трапитися не обовʼязково на початку функціонування проєкту, а з часом.

Неточності та помилки усуваються досить швидко, а от оптимізація роботи API потребує деякого часу на аналіз. По перше, треба зрозуміти в чому полягає суть проблеми – в тому, що база даних довго обробляє запит, чи в самому коді. Або відповідь настільки велика за розміром, що інтернет зʼєднання не може його швидко передати. Коли причина знайдена, її можна доволі швидко усунути: оптимізувати запит до бази даних, додати кешування відповіді, змінити логіку завантаження даних, та багато інших підходів. Але який саме підхід необхідно обрати – залежить від ситуації. Загалом оптимізація роботи API та оптимізація роботи звичайного сайту вимагають подібних підходів.

У нас є досвід роботи з проєктами, які повинні витримувати велике навантаження. Ми знаємо та вміємо налаштувати необхідне ПО для прискорення роботи API, вміємо оптимізувати роботу коду та роботу бази даних.

Наведемо кілька прикладів використання API в наших проєктах

Відправка пошти

Один із прикладів використання – це відправка повідомлень на пошту за допомогою сторонніх сервісів. Останні рази ми часто використовували систему Mailgun. Це сервіс, який через API отримує запит з інформацією кому відправити листа, текст, вкладення та інші параметри.

Цей запит відправляється на поштовий сервіс, який, відповідно, формує листа та відправляє його адресатам.

За прикладом цього сервісу, ваше API може мати схожі запити, що будуть створювати, відображати та змінювати інформацію. Всі разом вони формуватимуть цілісне API.

Оплати на сайті

Зазвичай інтернет-проєкти потребують інтеграції сервісів для оплати послуг чи товарів. Один із варіантів – інтеграція сервісу Liqpay. Цей сервіс також працює з використанням API. Перед тим як показати користувачеві форму оплати, необхідно через API відправити в сервіс інформацію про оплату та замовлення, отримати токен і вже з ним показати кнопку "Оплата". Без API це було б неможливо.

Автоматичні переклади

Ваш сайт також може потребувати автоматичних перекладів текстів на мову користувача. Якщо на сайті багато контенту або немає можливості синхронно підтримувати велику кількість мовних версій, можна розробити механізм автоматичного перекладу текстів, наприклад, через Google translate. Для цього також використовується API. За його допомогою сайт відправить запит з оригінальним текстом, мовою з якої та на яку потрібен переклад і у відповіді отримає текст перекладу. Далі його потрібно зберегти в правильному місці для коректної роботи.

Висновки

Таким чином, розробка вебпроєкту може вимагати не лише дизайну та верстки, але й розробки додаткових сервісів для повноцінної роботи. Частина таких сервісів може бути зроблена у вигляді API.

У своїй роботі ми використовуємо Symfony з набором бандлів, що працюють з API всередині проекту, або API Platform – наступний рівень розвитку такого підходу, але виокремлений в самостійний проєкт. Також у нас є досвід розробки API для мобільних додатків.

Якщо Ви зацікавилися нашим досвідом або Вам потрібно API для вашого проекту, ви можете написати нам, використавши форму нижче, або скористайтеся сторінкою з контактними даними – https://skylex.com.ua/kontakty.

Дякуємо! Ми Вам відповімо найближчим часов.
Введіть ваше імʼя
Введіть вашу пошту
Введіть ваш номер телефону
Введіть ваше запитання
TOP