Зв'язатися з нами
Обговорити ваш проєкт [email protected]
Інші питання (партнерство, вакансії...) [email protected]
Наш офіс Україна, Київ
Ми в соцмережах
Веб студія » Блог » Що таке API
Дата публікації: 18 Січня 2023

Що таке API

    13 хв

Loading

Напевно, ви чули щось про АРI. Ця абревіатура розшифровується як Application Programming Interface, що у перекладі українською — Програмний Інтерфейс Програми. Термін популярний, але незрозумілий. Навіть після його розшифрування. У цій статті проведемо короткий лікнеп по API і з’ясуємо, що він являє собою, як працює і в принципі навіщо він потрібен.

Що таке API – чому API називають інтерфейсом

З розшифровкою абревіатури ми вже визначилися, тепер пояснимо простою мовою, що ж таке АРI — це набір правил і способів, якими різні програми спілкуються між собою і обмінюються даними. Ці взаємодії відбуваються з допомогою класів, методів, структур, функцій, констант однієї програми, до якої звертаються інші. По суті це і є принцип роботи API.

Чому ж інтерфейс? Якщо говорити простими словами, то інтерфейс – це якийсь прошарок між додатком А і додатком Б. Саме в ньому відбуваються процеси, що дозволяють цим додаткам обмінюватися інформацією та виконувати ряд функцій, пов’язаних з обома сторонами. При цьому внутрішня будова програми ховається.

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

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

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

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

  1. Інкапсуляція спрощує життя всім розробникам, оскільки окремі компоненти програми стають абстрактними. Тобто для створення нового ПЗ немає необхідності лізти в логіку низькорівневих функцій.
  2. На АРІ можна непогано заробити. Наприклад, сервіси, які надають інформацію з метеовишок, стягують плату щоразу, коли здійснюється запит актуальної погоди, але тільки якщо їх API використовується у сторонніх софтах.

Чому API такі популярні у програмістів

Розробники мають особливий інтерес до АРI. Розглянемо 4 основні причини такої сильної тяги:

  1. API прискорює створення нових товарів. Простіше кажучи, програмістам не потрібно щоразу винаходити велосипед. Наприклад, можна взяти API TenserFlow та впровадити у своє ПЗ, а не самостійно витрачати час на розробку системи машинного навчання.
  2. Спрощує налаштування зв’язків між різними сервісами та програмами.
  3. Використання готових інтерфейсів – можливість заощадити не лише час, а й гроші.
  4. API дозволяє винести в окрему програму всю функціональність, яка має бути захищена. Це знижує можливість некоректного використання цих функцій іншими програмами. Простіше кажучи, програмний інтерфейс підвищує безпеку розробки.

Набір функцій

Опції, доступні під час роботи з API, залежать від розробників. Але загалом, лише трьома пунктами можна описати роботу інтерфейсу та методи взаємодії з ними:

  1. дані, які необхідно передати інтерфейсу до виконання певних функцій;
  2. процес, який виконує програма за допомогою API;
  3. дані, які ПЗ отримає на виході після обробки за допомогою API.

Можна сказати, що в результаті ми отримуємо просто приховану функцію (або набір) всередині яких відбувається деяка обробка та видача даних.

💡 Плануєте впровадити це у своєму бізнесі?
Звертайтесь до нас за послугами:
💼 Розробки сайту під ключ 🛠️ Технічною підтримкою вашого сайту 🛒 Створення інтернет-магазину 🤖 Індивідуальна веб-розробка

Як компанії заробляють за допомогою API

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

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

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

Приклади API

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

Google Календар

Якщо ви використовуєте календар для Android або iOS, напевно ви знаєте, що їх дані можна легко синхронізувати, підключивши Apple iCad або Google Calendar. Ці дві компанії пропонують розробника АРI, що дозволяє підключити календар до сторонніх додатків.

Що це дає? Користувач може використовувати кілька різних софтів із приблизно однаковою функціональністю. Що дозволяє мати актуальну інформацію про всі справи.

Саме АPI дозволяє створювати нові події чи видаляти існуючі. Також можна редагувати та встановлювати в календарі важливі нагадування.

Погодний додаток

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

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

Сервіс по замовленню авіаквитків

Тут принцип роботи приблизно такий, як і із додатками про погоду. Очевидно, що є сайти самих авіакомпаній, а є агрегатори – сервіси, що збирають інформацію в різних авіакомпаніях і надають її в єдиному вікні. Щоб отримати достовірну інформацію, розробники використовують сервіси авіакомпаній (вони оновлюють інформацію про наявність квитків у реальному часі).

Кнопки авторизації

Коли вам необхідно зареєструватися на якомусь сайті, ви відразу намагаєтеся знайти кнопку авторизації через Google, Apple, Facebook і т.д. Авторизація через існуючий обліковий запис теж робиться через API.

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

Навігація на сайтах та у додатках

Існують великі корпорації, які пропонують якісні картографічні дані (Apple, Google, Yandex та ін.). Деякі з них розробили власний API, що дозволяє підключити картографічний сервіс до сторонніх майданчиків. Наприклад, компанія On-taxi використовує Google.

Розробники програм під Android підключають до свого сервісу доставки їжі, таксі або трекерів карти Google, а для програм iOS – Apple Maps.

Як викликається API – виклик напряму

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

Розглянемо варіант виклику напряму.

1. Система викликає функції всередині себе

Ми вже позначили, що програми, вірніше їх частини, спілкуються між собою лише на рівні АРI. І це найпростіший у використанні спосіб, адже автор програмного інтерфейсу та споживач – програмісти, розробники. Це означає, що проблем із неактуальною документацією немає. Точніше вона є, але у вигляді коментарів до коду.

2. Система викликає метод іншої системи

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

Наведемо приклад. Припустимо, ви вирішили підключити прості підказки з Дадати до свого інтернет-магазину. Це потрібно для того, щоб користувач легко вводив адресу доставки. Ви підключили API. Коли користувач починає вводити адресу, він бачить підказки. Алгоритм дій простий:

  • юзер вводить букву у відповідному полі вашого інтернет-магазину;
  • ваш сайт надсилає запит до підказок Дадати по API;
  • Дадата повертає відповідь;
  • ваш сайт обробляє його та видає правильний результат.

У результаті кроків вийшло чимало, але користувач не бачить цієї взаємодії, лише результат.

3. Людина викликає метод

Тут може бути кілька причин:

  • з метою прискорити роботу;
  • щоб зрозуміти, де виник баг (наприклад, на сервері чи у клієнта);
  • для перевірки логіки, без докруток фронту.

Логічно, що якщо система представляє АPI, то куди простіше смикати його, ніж робити те саме, але через графічний інтерфейс.

4. Автотести смикають методи

Існує певна піраміда автоматизації. Вона складається з наступних пунктів:

  • GUI тести. Це чесний тест, де робот робить все, що робив би користувач. Наприклад, відкриває браузер та тикає на кнопки.
  • API тести. Тут відбувається все те саме, тільки без браузера. Тобто ви просто подаєте дані на вхід і перевіряєте їх на виході. Наприклад, можна внести підсумкову відповідь у таблицю Excel, і нехай робот вивіряє її, чи правильно заповнюються дані? Це дозволить швидше локалізувати проблему.
  • Unit-тести. І тут ми перевіряємо кожну функцію окремо.

Непрямий виклик API

Говорячи про непрямий виклик, це процес, який відбувається за участю посередника. Наприклад, інша функція або інший API. Для розуміння: натискаєте кнопку “Оновити”. Для користувача нічого не відбувається надприродного, але насправді він уже взаємодіє з браузером API. Але робиться це не безпосередньо, а через графічний інтерфейс.

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

Розглянута нами технологія має як мінуси, так і плюси. Почнемо із недоліків.

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

Тепер перейде до позитивних сторін цього програмного інтерфейсу:

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

Якщо вам потрібно впровадити на веб-сайт нову фічу, не поспішайте шукати розробника. Можливо, простіше буде знайти готове рішення у вигляді API!?

Особливості сучасного API

Які ж тенденції спостерігаються у розвитку програмних інтерфейсів? Розглянемо докладніше:

  1. Зараз інтерфейс розглядають не як набір кодів, що складається з рядків, а як окремо існуючий продукт. Він спрямований на особливу аудиторію. На програмістів. Це означає, що API це програма з передбачуваним випуском нових версій.
  2. Усі сучасні інтерфейси намагаються дійти спільного знаменника у питанні форматів.
  3. Ставлення до безпеки функцій АPI стало основним пріоритетом.
  4. Розробка програмних інтерфейсів схожа на створення програми: ідея, тестування, розробка, контроль версій тощо.

Питання та відповіді

Чи можна створити своє власне API?

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

У яких сферах застосовуються API?

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

Rate this post
Технічний директор, студії BRAINLAB

Автор статті - технічний директор і співзасновник Brainlab Studio Дмитро Колесніков. Він займається веброзробкою з 2011 року та за цей час реалізував понад 400 проєктів у сфері e-commerce і B2B, поєднуючи глибокі технічні знання зі стратегічним плануванням. Дмитро активно підтримує молодих розробників на початку їхньої кар’єри, а його статті наповнені практичними порадами та корисними інсайтами з реального досвіду.

Коментарі та питання до статті

Залишайте ваші коментарі та питання до статті, ми обов'язково дамо відповідь! *Ваш e-mail не буде відображений в коментарі.

Довірте нам ваш проєкт!
Чекаємо вашу заявку.
Розробляємо IT-рішення з гарантією вже понад 10 років.

Обговорити ваш проєкт

[email protected]

Інші питання (партнерство, вакансії...)

[email protected]

Ми в соцмережах

Калькулятор вартості сайту Brainlab

Цікавить вартість розробки сайту? Наш калькулятор дає можливість вивчити вартість кожного етапу і підібрати відповідний під бюджет варіант.

Довірте нам ваш проєкт!
Чекаємо вашу заявку.

Розробляємо IT-рішення з гарантією вже понад 10 років.
Заповніть ім'я
Заповніть телефону
Заповніть email
Дякую за заявку!

Наші менеджери зв'яжуться з вами найближчим часом.

Помилка під час відправлення!