Цей короткий термін на слуху у всіх, хто хоч якось стикався з розробкою. Але далеко не всі розуміють, що саме він позначає і навіщо потрібен. Розробник Петро Газаров розповівши про API простими словами в своєму блозі.
API — це абривіатура «Application Programming Interface «(інтерфейс програмування додатків, програмний інтерфейс програми). Більшість великих компаній на певному етапі розробляють API для клієнтів або для внутрішнього використання. Щоб зрозуміти, як і яким чином API застосовується в розробці і бізнесі, спочатку потрібно розібратися, як влаштована «всесвітня павутина».
Всесвітня павутина і віддалені сервери
WWW можна уявити як величезну мережу пов’язаних серверів, на яких і зберігається кожна сторінка. Звичайний ноутбук можна перетворити в сервер, здатний обслуговувати цілий сайт в мережі, а локальні сервери розробники використовують для створення сайтів перед тим, як відкрити їх для широкого кола користувачів.
При введенні в адресний рядок браузера www.facebook.com на віддалений сервер Facebook відправляється відповідний запит. Як тільки браузер отримує відповідь, то інтерпретує код і відображає сторінку.
Кожен раз, коли користувач відвідує будь-яку сторінку в мережі, він взаємодіє з API віддаленого сервера. API-це складова частина сервера, яка отримує запити і відправляє відповіді.
7 курсів по API, щоб розібратися в теміЗа теме7 курсів по API, щоб розібратися в темі
API як спосіб обслуговування клієнтів
Багато компаній пропонують API як готовий продукт. Наприклад, Weather Underground продає доступ до свого API для отримання метеорологічних даних.
Сценарій використання: на сайті невеликої компанії є форма для запису клієнтів на прийом. Компанія хоче вбудувати в нього Google Календар, щоб дати клієнтам можливість автоматично створювати подію і вносити деталі про майбутню зустріч.
Застосування API: мета-сервер сайту повинен безпосередньо звертатися до сервера Google із запитом на створення події з зазначеними деталями, отримувати відповідь Google, обробляти його, і передавати відповідну інформацію в браузер, наприклад, повідомлення із запитом на підтвердження користувачеві.
В якості альтернативи браузер може зробити запит до API сервера Google, минаючи сервер компанії.
Чим API Google Календаря відрізняється від API будь-якого іншого віддаленого сервера в мережі?
Технічно, різниця у форматі запиту та відповіді. Щоб згенерувати повну веб-сторінку, браузер очікує відповідь на мові розмітки HTML, в той час як API Google Календаря поверне просто дані в форматі на зразок JSON.
Якщо запит до API робить сервер веб-сайту компанії, то він і є клієнтом (так само, як клієнтом виступає браузер, коли користувач відкриває веб-сайт).
Користувач завдяки API отримує можливість здійснити дію, не залишаючи сайт компанії.
Більшість сучасних сайтів використовують принаймні кілька сторонніх API. Багато завдань вже мають готові рішення, пропоновані сторонніми розробниками, будь то бібліотека або послуга. Найчастіше простіше і надійніше вдатися саме до вже готового рішення.
Багато розробників розносять додаток на кілька серверів, які взаємодіють між собою за допомогою API. Сервери, які виконують допоміжну функцію по відношенню до головного сервера програми, називаються микросервисами.
Таким чином, коли компанія пропонує своїм користувачам API, це просто означає, що вона створила ряд спеціальних URL, які в якості відповіді повертають тільки дані.
Такі запити часто можна відправляти через браузер. Так як передача даних по протоколу HTTP відбувається в текстовому вигляді, браузер завжди зможе відобразити відповідь. Наприклад, через браузер можна безпосередньо звернутися до API GitHub (https://api.github.com/users/petrgazarov), причому без маркера доступу, і отримати ось таку відповідь у форматі JSON:
Браузер відмінно відображає JSON-відповідь, який цілком можна вставляти в код. З такого тексту досить просто витягти дані, щоб використовувати їх на свій розсуд.
Онлайн-курси, щоб розібратися з API
Developing APIs with Google Cloud’s Apigee API Platform
Exploring GraphQL: A Query Language for APIs
The React Developer Course with Hooks, Context API and Redux
Rest API Automation With Rest Assured
Bubble-новий гід по цифровому світу: як увійти в Айті і хакнути своє життя
Ще кілька прикладів API
Слово «application» (прикладний, додаток) може застосовуватися в різних значеннях. У контексті API воно має на увазі:
- фрагмент програмного забезпечення з певною функцією,
- сервер цілком, додаток цілком або ж просто окрему частину програми.
Будь-який фрагмент ПЗ, який можна чітко виділити з оточення, може замінювати букву «А» в англомовній абревіатурі, і теж може мати деякого роду API. Наприклад, при впровадженні в код розробником сторонньої бібліотеки, вона стає частиною всього додатка. Будучи самостійним фрагментом ПЗ, бібліотека матиме якийсь API, який дозволить їй взаємодіяти з іншим кодом програми.
В об'єктно-орієнтованому проектуванні код представлений у вигляді сукупності об'єктів. У додатку таких об'єктів, що взаємодіють між собою, можуть бути сотні. У кожного з них є свій API-набір публічних властивостей і методів для взаємодії з іншими об'єктами в додатку. Об'єкти можуть також мати приватну, внутрішню логіку, яка прихована від оточення і не є API.