API (Application Programming Interface, з англ. програмний інтерфейс додатків) — це опис констант, класів, структур, процедур і функціональних можливостей комп’ютерної програми, простими словами набір компонентів, за допомогою яких одна програма може взаємодіяти з іншою.

Як працює API

Якщо ми представимо прикладну програму як концепцію «чорної скриньки», програмний інтерфейс можна розуміти як механічні органи керування – тумблери, ручки, кнопки.

Чорна скринька — система, яка має вхід для введення інформації та вихід для її виведення.

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

Так працює технологія

Так працює технологія API

Програмний інтерфейс може реалізовуватись:

  1. Сервісом ОС.
  2. Інтернет-протоколом.
  3. Програмною бібліотекою.
  4. Фреймворком.
  5. Безліччю інших методів.

Спочатку додамо пару пару слів про інтерфейс, тому що це межа між двома функціональними об’єктами.

Приклад — User Interface, який є спільним кордоном між програмою та користувачем. По суті UI — це просто графічна оболонка програми, яка дозволяє користувачеві взаємодіяти з її функціями. Засоби введення – миша та клавіатура – теж інтерфейс. Інтерфейс може бути не тільки користувальницьким, але й програмним для спілкування двох різних програм.

Навіщо потрібний API

Власний API (наприклад, прикладна програма) — це універсальне і прискорене рішення для розробника. Ви лише одного разу налаштовуєте серверну частину, а потім спокійно використовуйте створений інтерфейс у прикладних програмах, веб-додатках, на сайтах де завгодно.

Розробники створюють власний API для зв’язку з іншими програмами, щоб:

  1. Не прописувати серверну частину щоразу заново. На це витрачається багато часу.
  2. Зробити розробку безпечнішою (сторонні люди не можуть отримати доступ до серверних та інших функцій).
  3. Не збільшувати розмір вихідної програми.

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

Також на API створюється колосальна кількість нових програм.

Види API

Більшість інтерфейсів користувача відносяться до Інтернету: це REST, RPC, SOAP.

Не плутайте SOAP та REST. SOAP – це протокол, REST – архітектурний шаблон. SOAP використовує службові інтерфейси для надання своїх функцій клієнтським додаткам, а REST використовує уніфіковані локатори служб. Це робиться для організації доступу до компонентів на апаратному пристрої. SOAP, на відміну від REST, вимагає більшої пропускної спроможності для свого використання.

Звичайному користувачеві не обов’язково вдаватися до деталей, але деякі з них використовуються для віддаленого виклику, інші для передачі станів, треті для доступу до об’єктів.

Можна систематизувати типи технології за категорією доступу:

  1. Публічні. Створюються для отримання прибутку, підвищення популярності будь-якого сервісу та його подальшого просування.
  2. Для внутрішнього вжитку. Використовується розробниками, наприклад, для тестування нових програм або під час налагодження.
  3. Афілійовані. Можуть використовуватися для створення нових продуктів або зміни. Спонсорські програмні інтерфейси зазвичай створюються дуже великими сервісами подальшої передачі іншим розробникам.

Також можна систематизувати за початковою програмою чи сервісом, у які вони вбудовані:

  • операційна система;
  • прикладна програма;
  • сайт.

Приклади використання API

Ось список сервісів, які працюють завдяки цій технології:

  • Перекладач Google у режимі вбудованого вікна на сайтах.
  • Google Maps всередині мобільного додатка Uber.
  • Платіжні системи в Інтернеті.
  • Веб-аналітика на сайті, наприклад Google Analytics.
  • Кнопки соціальних мереж на сайтах.

Без цієї технології буде складно! Наприклад, ви створили сайт. Щоб він працював як завжди, довелося б вручну прописувати програму для підключення до інтернету, для роботи з кількома браузерами, для роботи з кількома операційними системами.

Навіть простий сайт спілкується із браузером. Браузер спілкується з ОС, а операційна система з драйверами системи.

Якби всі API разом відключилися, 95% (або більше) програм та сервісів, якими ви користуєтесь щодня, просто перестали б працювати.

Переваги та недоліки технології

Плюси

  1. Необхідний доступ до чужих сервісів та технологій – швидкий та надійний.
  2. Економія часу та людських ресурсів під час створення своїх програм на основі чужих технологій.
  3. Відсутність неприємних сюрпризів. Реалізувати можна навіть складні функції, при цьому розробнику не потрібно готуватися до нестандартної поведінки програми. Ну а системність і стабільність, описані вище, самі цінні для кожного розробника.
  4. Не слід займатися складною розробкою. Тобто, за фактом — винаходити велосипед. Немає потреби писати код для складного функціоналу, який вже був реалізований до вас.
  5. Універсальність. Інтерфейси користувача працюють швидко, скрізь і використовуються повторно таку кількість разів, яку необхідно розробнику.

Мінуси

  1. Складність редагування компонентів, що знаходяться нижче за ієрархією. Вона зумовлена особливостями побудови елементів на різних етапах ієрархії.
  2. Багато труднощів при ручній координації викликів. Поєднати виклики методів API складно, особливо при вирішенні нестандартних завдань, тому що доведеться вручну передбачати безліч сценаріїв координації. З простими функціями все зрозуміло і просто.
  3. Складності оновлення та додавання нових функцій. Вносити зміни до програмного інтерфейсу можна дуже довго — і це лише одна з проблем. Друга полягає в тому, що всі ці зміни необхідно узгоджувати в компанії або відразу з розробником, а це займе ще більше часу або взагалі буде неможливим.
  4. Важко адаптувати код із одного програмного інтерфейсу на інший. Портування особливо утруднене при глобальних змінах, наприклад, при заміні операційної системи.
  5. Багато різних стандартів. Так, програмні інтерфейси семимильними кроками йдуть до стандартизації. Але це лише перспектива найближчих років, а поки що загальноприйняті стандарти у програмних інтерфейсах просто відсутні. Все це уповільнює процес розробки, налагодження, а також неймовірно заважає обробці в режимі реального часу.
  6. Деякі рішення просто погано спроектовані спочатку, наприклад, програмний інтерфейс створений любителем для вирішення якоїсь невеликої задачі. Такі API могли проектуватися безграмотно і від них краще спочатку відмовитися.

В ідеалі створенням інтерфейсів користувача повинні займатися не розробники додатків, а вузькоспеціалізовані програмісти.

Що таке API і навіщо потрібна ця технологія

Як відбувається виклик функцій API

Викликати інтерфейс програмування програм можна непрямими та прямими методами. Їх щонайменше п’ять.

Непрямий метод виклику API

Ви працюєте з програмою через графічний інтерфейс користувача. Допустимо, потрібно швидко сформулювати будь-яку статистику у вигляді звіту. Ви відкриваєте програму, вибираєте необхідний період та натискаєте кнопку «Побудувати» («Сформувати», «Завантажити», не суть як вона називається). Пару секунд – і звіт готовий. Магія в тому, що це також ґрунтується на наборі функцій інтерфейсу програмування додатків.

Тепер розглянемо 4 прямі способи.

Виклик API всередині програми

Ви робите перший виклик із графічного інтерфейсу програми, а решта складових API «спілкуються» один з одним вже самостійно. Відповідно, будуть як мінімум дві функції: виклик з інтерфейсу та оновлення будь-яких даних. Наприклад, 1-а функція — додати новий рядок, 2-а — оновити дані для побудови нової версії таблиці.

У 98% випадків виклик у собі використовується самими розробниками, тому ніяких додаткових складностей виникати має.

Автоматичні тести добувають необхідні методи

Це спеціальні програми, які мають на меті виявити будь-які несправності у вихідному коді. Щоб виявити помилки та баги, вони намагаються робити такі самі дії, як і справжній користувач.

Автоматичні тести можуть робитися через графічний інтерфейс або через інтерфейс програмування додатків. При цьому передбачено тестування різних рівнів:

  • GUI – імітація дій користувача;
  • API – рівень нижчий;
  • UNIT – для перевірки будь-яких окремих функцій, наприклад, безпеки та юзабіліті.

Система А видобуває дані через API системи В

Наприклад, вам необхідно додати систему рекомендацій до свого сайту. Ця система має на увазі спливаючі варіанти відповідей у пошуковому рядку. Допустимо, це будуть адреси, щоб користувач при замовленні не вводив поштову адресу повністю, а міг вибрати її зі списку, просто ввівши 2-3 літери.

Ви підключаєте API будь-якого відповідного вам сервісу до сайту. Після цього сайт зможе надсилати запити на необхідний ресурс через програмний інтерфейс програм та відображати дані вже у себе.

Цей сценарій виклику API особливо характерний для тестування коректності інтеграцій.

Ручний виклик API користувачем

Не потрібно возитися з GUI, якщо можна зробити всю роботу безпосередньо з API. Існує чимало сценаріїв виклику людиною:

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

Підсумок

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