Ви, напевно, уже стикалися з абревіатурою API. В оновленнях операційних систем, веб-браузерів та інших програм часто анонсують нові API для розробників. Але що таке API та як розробники їх використовують?
Що таке API?
API (скор. від “Application Programming Interface”) — це програмний інтерфейс додатку, який надає розробнику набір функцій разом із описом того, що ці функції роблять. Розробнику необов’язково знати, як, наприклад, операційна система створює та відображає діалогове вікно “Зберегти як”. Достатньо того, що такий функціонал існує і доступний для використання у додатку розробника.
API чимось нагадує меню ресторану: є список страв, які ви можете замовити, а також опис кожної страви. Коли ви вказуєте, які пункти меню ви хочете вибрати, кухня ресторану виконує всю роботу з приготування їжі та віддає вам готові страви. Ви точно не знаєте, як саме у ресторані готують обрану їжу, та й вам не потрібно цього знати.
API дозволяють розробникам економити час завдяки можливості використовувати переваги реалізованого платформою функціоналу для виконання різних завдань. Це допомагає скоротити кількість коду, який повинен написати розробник, а також забезпечує коректну взаємодію між додатками однієї платформи. API можуть керувати доступом до апаратних та програмних ресурсів пристрою.
Як працюють API?
Припустимо, ви хочете створити програму для iPhone. Щоб полегшити це завдання, операційна система iOS від Apple, як і будь-яка інша операційна система, надає великий набір API. Наприклад, якщо ви хочете мати у своїй програмі засіб відображення однієї або декількох веб-сторінок, вам не потрібно буде з нуля програмувати свій власний веб-браузер. Достатньо звернутися до API WKWebView, щоб вбудувати двигун WebKit (Safari) у свою програму.
Якщо ви хочете робити фотографії або знімати відео з камери iPhone, то знову ж таки немає необхідності писати свій власний інтерфейс камери, коли вже є готовий API. З його допомогою ви можете легко додати можливості вбудованої камери iPhone у свою програму. Якби не існувало API, то розробникам додатків довелося б реалізовувати власне програмне забезпечення і правильно обробляти дані, що надходять з камери. Але творці операційних систем техніки Apple вже зробили всю важку роботу, тому розробники можуть просто використовувати готові API для вбудування камери та почати писати свої програми. І коли Apple покращить API камери, всі програми, які його використовують, автоматично отримають дані покращення.
Це стосується і будь-якої іншої платформи. Наприклад, ви хочете створити діалогове вікно у Windows? Для цього є API. Бажаєте підтримувати аутентифікацію за відбитками пальців на Android? Для цього також є API.
Коли ви заходите в Facebook зі свого смартфону, ви повідомляєте програму Facebook, що хотіли б отримати доступ до свого облікового запису. Мобільний додаток здійснює виклик API для отримання даних вашого облікового запису Facebook. Потім Facebook отримує доступ до цієї інформації з одного зі своїх серверів і повертає дані назад у мобільний додаток.

API цього типу є найпоширенішими і належать до так званих Web API. Практично для кожного сервісу, який очікує на взаємодію з іншими сервісами існують API, які дозволяють розробникам щоразу не придумувати велосипед, а використовувати готові рішення.
Де використовуються API?
Розглянемо найпопулярніші застосування:
API використовуються в десктопних додатках.
API є в основі більшості веб-застосунків.
API роблять можливим існування мобільних додатків.
API є інтеграцією для так званих no-code рішень.
API дозволяють різним пристроям під’єднуватися до Інтернету.
API визначають правила передачі інформації між програмами, системами та пристроями.
API навіть присутні в таких повсякденних речах, як: автомобілі, дверні дзвінки, посудомийні машини та інші гаджети.
API та контроль доступу до ресурсів
API також використовуються для керування доступом до ресурсів (як до програмних, так і до апаратних), на використання яких програма може не мати дозволів. Ось чому API часто відіграють велику роль у забезпеченні безпеки.
Наприклад, коли ви відвідуєте веб-сайт і бачите у своєму браузері повідомлення про те, що веб-сайт запитує дозвіл на визначення вашого точного місцерозташування, це означає, що веб-сайт намагається використовувати геолокацію API у вашому веб-браузері. Веб-браузери надають подібні API, щоб веб-розробникам було легко отримати доступ до вашого місцезнаходження: вони можуть просто надіслати запит, і далі браузер сам виконає всю важку роботу з доступу до GPS або прилеглих мереж Wi-Fi, щоб визначити геолокацію.
У той же час браузери надають цю інформацію саме через API, тому що в даному випадку можна контролювати доступ до запитуваних функцій. Коли веб-сайт хоче отримати доступ до вашого точного розташування, єдиний спосіб зробити це — через спеціалізований API визначення геолокації. І коли веб-сайт намагається використовувати його, ви, як користувач, можете дозволити або відхилити цей запит. Єдиний спосіб отримати доступ до апаратних ресурсів (таких, як датчик GPS) — через API. Тому браузер може контролювати доступ до обладнання та обмежувати можливості програм.
Цей принцип використовується і в сучасних мобільних операційних системах, таких як iOS та Android. У вказаних системах додатки мають дозволи, за допомогою яких можна контролювати їх доступ до API. Наприклад, якщо розробник спробує отримати доступ до камери через API камери, ви можете відхилити відповідний запит, і програма не зможе отримати доступ до камери вашого пристрою.
Файлові системи, в яких вбудована підтримка дозволів, використовують їх для контролю доступу до API файлової системи. Звичайна програма не має прямого доступу до даних на жорсткому диску. Натомість вона має отримувати доступ до файлів через API.
API та зв’язок між сервісами
Застосування API відбувається і з багатьох інших причин. Наприклад, якщо ви коли-небудь бачили на веб-сайті вбудований сервіс карт Google Maps, це означає, що веб-сайт використовує API Google Maps. Google надає подібні API веб-розробникам, які потім можуть використовувати їх для розміщення складних об’єктів прямо на своєму веб-сайті. Якби таких API не існувало, розробникам, можливо, довелося б створювати власні карти і надавати свої власні картографічні дані, просто щоб розмістити невелику інтерактивну карту на сайті.
І оскільки це API, Google може контролювати доступ до своїх карт на сторонніх веб-сайтах, гарантуючи, що вони будуть використовувати його узгодженим чином, а не намагатимуться безладно вбудувати фрейм, який показує, наприклад, веб-сайт Google Maps.
Це стосується і багатьох різних онлайн-сервісів. Існують API для запиту на переклад тексту з Google Translate або для розміщення коментарів Facebook тощо.
Стандарт OAuth також визначає ряд API, які дозволяють авторизуватися на веб-сайті за допомогою інших сервісів, наприклад, використовувати свої облікові записи Facebook, Google або Twitter без створення нового облікового запису користувача на поточному веб-сайті. API — це “контракти”, які визначають, як розробники повинні взаємодіяти із сервісами, щоб отримати кінцеві дані у коректному вигляді.
Висновки
API існують вже давно і існуватимуть доти, доки компанії будуть використовувати їх у своїй діяльності. Вони дуже універсальні та швидкі. Сподіваюся, тепер ви стали хоч трішки краще розуміти, що таке API і як вони працюють.
