API або Application Programming Interface зустрічається в додатках, сайтах і мемах програмістів.
Якщо ви теж не зрозуміли, про що ці меми, то давайте розбиратися, що таке API.
API — що це та як працює
Ви точно використовуєте API постійно, але не помічаєте цього. Наприклад, коли пересилаєте картинки з одного месенджера до іншого або швидко реєструєтесь на новому сайті через Facebook.
Віталій, розробник HOSTiQ.ua 💬
«Ми в HOSTiQ все робимо через API: створюємо хостинги в клієнтських облікових записах, видаляємо їх, реєструємо домени, отримуємо платежі. Без API нам не обійтися — це економить час і спрощує роботу.»
Простими словами, API — це посередник між програмами, який задає правила «спілкування». Тому в його назві закладено поняття «інтерфейс» — межа між об’єктами. Одній програмі не важливо, як працює інша. Розробники просто користуються інтерфейсом: надсилають запит і отримують зворотну відповідь.
Розглянемо використання API на прикладі. Розробник зробив сайт із онлайн-конвертером валют. Він хоче, щоб конвертером користувалися не лише на вихідному сайті, а й у банківських програмах.
Як це зробити:
- Розробник конвертера створює API та викладає його на своєму сайті. Описує в документації, як працює API та які в нього є функції.
- Розробники банківських програм беруть API конвертера та додають його до свого коду, якщо хочуть дати своїм користувачам функції цього конвертера.
- Користувач програми вводить суму, яку хоче «обміняти», та вибирає валюти.
- Програма надсилає на сервер конвертера спеціальний запит із сумою, яку потрібно перевести у вибрану валюту.
- Конвертер переводить суму та відправляє відповідь з результатом у потрібній валюті.
- Програма отримує відповідь та показує її користувачу.
У результаті всі задоволені: користувач переклав цифри в іншу валюту в додатку, конвертером користуються не лише на сайті, а банківські програми не писали конвертер з нуля, але покращили свій продукт.
Віталій, розробник HOSTiQ.ua 💬
«API спрощує та прискорює роботу, а іноді взагалі виглядає як магія. Наприклад, як із перекладами статей у блозі:
– ми: переклади цей текст.
– Google Translate через дві секунди: переклав, щось ще?
А ми гадки не маємо, скільки всього стоїть за тим, щоб цей переклад зробити. Нам це й не потрібно.
При купівлі на рік — знижка 30%
Чому розробники використовують API
Приклад вище показує, навіщо потрібен API та які плюси дає його використання:
- Економія. Розробники, які використовують чужі API, заощаджують час та гроші, бо працюють з уже готовим кодом.
- Передбачуваність. Користувачі звикли до функцій API, тому їм не потрібно пояснювати в кожній новій програмі, як працює вже знайома кнопка.
- Прибуток. Розробники, які створюють API, можуть продавати їх, а не викладати у вільному доступі. Головне, щоб був попит.
Але є й недоліки API:
- Неактуальність. Коли основна програма змінюється, її API не завжди оновлюють вчасно, інколи ж взагалі не оновлюють. Також API можуть закрити і його функції відключаться у всіх програмах.
- Поверхневість. Коли розробник використовує чужий API, він знає, як працює API, але не знає, як працює вихідний код. Це може стати проблемою для нових співробітників усередині компанії. Наприклад, розробник написав API для компанії, а потім звільнився. Всі нові співробітники користуються API і не знають, як працює вихідна програма, тому її буде складно відремонтувати у разі поломки.
- Обмеженість. API виконує лише те, що дозволили його розробники. Якщо потрібно більше функціоналу, то його не вдасться впхнути в готовий API чужої програми.
Віталій, розробник HOSTiQ.ua 💬
«Коли працюєш з API, то можеш використовувати лише те, що описано у документації.
Іноді можна покопатися і знайти приховані можливості, але тоді незрозуміло, чи можна їх використовувати, якщо вони не описані в документації.
Ще не завжди в документації є приклади. Без прикладів буває неясно, як користуватися функцією, і тоді ти просто не можеш її застосовувати.
Які бувають види API
За типом доступу API поділяють на:
- Публічні API. Розробники створили API для своєї програми та дають користуватися ним усьому світу. Такі API часто продають, щоб отримати додатковий дохід. Наприклад, так робить Google з API Google Maps.
- Приватні чи внутрішні API. Розробники приховують ці API від всього світу. Наприклад, приватні API використовують компанії, щоб зв’язати свої програми.
- Партнерські API. Спеціальні API, які розробники компаній пишуть для партнерів та діляться лише з ними. Наприклад, API для зв’язку бази даних компанії та сторонньої CRM-системи чи email-сервісу.
- Складні API. Складаються з кількох API, щоб виконувати багато послідовних дій. Зазвичай складні API створюють, тому що вони працюють швидше, ніж один великий API.
Але ви могли чути про інші типи API з незрозумілими приставками: RPC, SOAP та REST. Далі намагатимемося пояснити, що це за приставки та в чому між ними різниця. Може бути складно в усьому розібратися, проте потім вийде підібрати потрібні технології для свого API.
П’ємо чай, відпочиваємо, дивимося відеоролик, і читаємо далі.
API обмінюються даними та функціями, для цього потрібні чіткі протоколи та архітектури ― правила, за якими працюватиме API. Архітектуру API можна порівняти з правилами гри в «дурня». Хтось грає з джокерами, хтось у перекладного, а хтось у звичайного із 36 карт. Сенс гри не змінюється, але структура відрізняється.
Існує три основні типи архітектур API: RPC, REST та SOAP. Їх можна назвати «форматами», кожен з яких має унікальні характеристики та використовується для різних цілей. Є й інші формати API, але на момент написання статті ці три — найпопулярніші.
👉 RPC ― це простий формат для надсилання кількох параметрів та отримання результатів. API RPC викликають дії чи процеси, тоді як інші API переважно обмінюються даними чи ресурсами. RPC може використовувати дві мови для кодування ― JSON та XML.
JSON підтримує обмін лише текстом, в той час як XML обробляє текст, зображення, графіки та діаграми. Таким чином, XML пропонує більше можливостей обробки документів, ніж JSON.
Формат RPC не підходить для приватних API компаній через обмежену підтримку типів даних. Однак, RPC API підходять для внутрішніх частин складних API. Наприклад, API RPC можуть здійснювати дзвінки, не чекаючи на відповідь від сервера, що важливо для швидких паралельних обчислень.
👉 Формат SOAP використовує лише мову кодування XML. Робота з API з цією архітектурою найскладніша: SOAP дуже структурований та строго контрольований формат.
SOAP використовується, коли компанії потрібна підвищена безпека та чітко визначені правила для обміну даними. Розробники часто використовують SOAP для внутрішніх або партнерських API.
Віталій, розробник HOSTiQ.ua 💬
«З SOAP я працював лише один раз. Як тут написано, «розробники здригаються, коли потрібно працювати з SOAP». Так було і в мене. Поки я робив задачу з SOAP API, у мене весь час було відчуття, що я повинен пам’ятати занадто багато або що я щось десь упустив.»
👉 REST вважається більш простою альтернативою SOAP. Кожна одиниця інформації для цього виду API ― унікальна URL-адреса, яку можна запросити.
REST використовують для швидкого обміну простими параметрами, у тому числі тими, з яких складаються бази даних. Тому REST API добре підходить для взаємодії великих баз даних. Ці характеристики роблять REST популярним для публічних API, наприклад для мобільних додатків.
Для наочності, ось різниця між архітектурними стилями API у таблиці:
RPC | SOAP | REST | |
Принцип стилю API | Виклик процедури | Передача повідомлення у строгому форматі | Передача повідомлення у вигляді ресурсу |
Формат стилю API | JSON, XML, Protobuf, Thrift, FlatBuffers | Тільки XML | XML, JSON, HTML, простий текст |
Складність використання стилю API | Легко | Важко | Легко |
Спільнота користувачів стилю API | Велика | Маленька | Велика |
Де застосовується стиль API | Складні API або внутрішні мікросервіси | Платіжні системи, ідентифікація у фінансових системах, підтримка застарілих систем | Публічні API |
Якщо ви хочете робити свої API для інших — подбайте про стабільний хостинг. Бо навряд чи хтось захоче використовувати API-інструменти, які час від часу недоступні.
На нашому хостингу ми гарантуємо рівень аптайму у 99,9%, тож вам не доведеться хвилюватися через падіння сервісів.
В комплекті до хостингу ви отримуєте зручну панель керування, швидкі SSD-диски та розумну цілодобову службу підтримки 💪 А ще його можна тестувати безплатно протягом 30 днів.
Якщо ж ви не розробник, а користувач API, ми теж будемо раді піклуватися про ваш сайт 😉
5 прикладів API з нашого життя
З технічною частиною розібралися, тепер давайте подивимося, як виглядає API для користувачів.
API: приклади, з якими ми стикаємося щодня 👇
1. Прогноз погоди
Ми можемо перевірити прогноз погоди на комп’ютері, у телефоні та розумному годиннику. Ці пристрої нічого не знають про погоду, але вони використовують API. Навіть усюдисущий Google не збирає дані про погоду, а користується відповідями API сайтів про прогнози погоди.
2. Швидка реєстрація
На багатьох сайтах можна зареєструватися через обліковий запис Facebook або Google ― швидка реєстрація теж працює через API. Замість входу до вашого акаунту Facebook, програма швидкої реєстрації перевіряє API, чи ви увійшли до облікового запису. Якщо ви не увійшли до акаунту, програма попросить вас підтвердити вхід.
3. Оплата Apple Pay
Більшість інтернет-магазинів пропонують сплатити за товар Apple Pay або іншими способами оплати. Коли покупець натискає кнопку «Сплатити через Apple Pay», програма відправляє запит до API Apple Pay, вказуючи суму замовлення. Потім спливаюче вікно просить покупця підтвердити покупку. Якщо все йде за планом, API відправляє підтвердження платежу до програми.
4. Туроператори
API чудово підходять для туристичних послуг, тому що допомагають програмам обмінюватися запитами на бронювання та інформацією про вільні номери. Без API туроператору довелося б особисто звертатися до кожного готелю та авіакомпанії, щоб дізнатися про вільні місця.
5. YouTube не в YouTube
Коли ви дивитеся відео з YouTube не на сайті YouTube, ви не замислюєтеся, як це працює. Це також API, яким безкоштовно ділиться YouTube. Якби його не було, то у статті про котиків довелося б ставити посилання на відео про котиків. А з API можна дивитись тут і зараз, не відриваючись від статті.
Сподіваємося, що нам вдалося ввести вас у складний світ API: тепер ви знаєте, що таке API у програмуванні та які бувають API. А ще з цього моменту ви помітите, як насправді багато API навколо вас 🙂
Якщо у вас залишилися питання про те, як працювати з API, пишіть їх у коментарях!
Корисні статті, які варто прочитати 👇