API — це інтерфейс програмування програми. Ця абревіатура використовується скрізь — від інструментів командного рядка до додатків на Ruby on Rails.
API — це готовий код, який спрощує життя програмістам. Розробник може використовувати готовий код API, щоб писати програму. Він допомагає організувати код і зробити так, щоб компоненти могли використовуватися неодноразово.
Докладніше про API
API — це специфікація можливих взаємодій з компонентом ПЗ. Наприклад, якби машина була компонентом ПЗ, її API містило б інформацію про те, що машина може прискорюватися, гальмувати та включати радіо. Її API також включало б інформацію про те, як прискорюватися.
API працює на 3 рівнях:
Програма: Це програми, які ви використовуєте на смартфоні, або програмне забезпечення.
Програмування: Програмісти використовують API, щоб писати код.
Інтерфейс: Як ви взаємодієте з додатком.
Приклад: Уявіть собі офіціанта в ресторані. Ви клієнт, вибираєте замовлення в меню. Кухня — виконавець вашого замовлення.
Вам потрібний посередник, який повідомить про замовлення на кухню та принесе вам їжу на стіл. Їм не може бути шеф-кухар, бо він готує на кухні. Вам потрібен хтось, хто зв’яже клієнта та шеф-кухаря. І тут у гру входить офіціант — API.
Офіціант приймає ваше замовлення, приносить його на кухню, каже, що ви замовили. Потім доставляє відповідь, чи їжу вам. Більше того, якщо все зроблено правильно, ваше замовлення не впаде.
Види API
Публічні API випускаються такими компаніями, як Slack і Shopify, сподіваючись, що розробники їх використовуватимуть на своїх платформах. Компанії діляться набором вступних параметрів, які розробники використовують, щоб досягти певного результату.
Публічне API можна використовувати без проблем — доступ до документації вільний.
Приватні API використовуються всередині компанії. Якщо компанія має багато програмних продуктів, приватне API використовується, щоб програми спілкувалися між собою. Компоненти API можуть змінюватися за бажанням компанії, тоді як зміни в публічному API можуть викликати відчайдушні протести.
Давайте розглянемо Java API та Twitter API як приклади. Ці API відносяться до виду публічних.
Java API
Java API — бібліотека компонентів ПЗ, доступних у готовому вигляді всім, хто встановив Java Development Kit. Ці компоненти виконують загальні завдання та підвищують продуктивність, оскільки програмістам не потрібно писати код з нуля щоразу.
Один із базових компонентів у ПЗ називається List, або Список. Цей компонент слідкує за списком сутностей. Java API визначає, що ви можете робити зі списком: додавати сутності, сортувати їх у списку, визначати, чи сутність входить до списку. API також уточнює, як виконувати ці дії. Щоб відсортувати список, потрібно уточнити, яке сортування ви хочете: за алфавітом, кількісно, за кольором.
Документація API OpenJDK для методу сортування Списку. Порівняльник — це параметр, який визначає сортування списку
Twitter API
Twitter API, разом з багатьма іншими API у веб-версії, є прикладом REST API. REST API — це API, яке використовує архітектурний стиль, заснований на передачі стану подання. REST — це стиль будівельних систем, який забезпечує гнучке спілкування та відображення інформації в Інтернеті.
У REST API ресурс може бути чим завгодно.
Приклад ресурсів: користувач, список твітів, результати пошуку твітів. До кожного з цих ресурсів можна звертатися за його ідентифікатором. У випадку REST API у веб-версії це зазвичай URL.
Коли програма запитує ресурс через ідентифікатор, API віддає поточне подання ресурсу додатку у відповідному для нього форматі: JPEG, HTML-сторінці або JSON.
Одна з відмінних характеристик REST — те, що API відправляє дані додатку, який їх запитує. Незважаючи на те, що це дає гнучкість додатку, ця гнучкість досягається ціною зниження ефективності. Пересилати дані в інтернеті для обробки — досить повільний процес.
- Памʼять: 4096 МБ
- Диск: 50 ГБ SSD
- Трафік: Безліміт
- CPU: 2 ядра
API як рівень абстракції
Коли йдеться про ПЗ, API потрібно скрізь. API йде пліч-о-пліч з одним з найбільш фундаментальних концептів у комп’ютерній науці — абстракцією.
Абстракція — спосіб організувати складну систему так, що складні дії можуть виконуватися просто.
Приклад такої абстракції — програмована хмарна кнопка Amazon Dash Button. Її можна налаштувати, щоб підраховувати або відстежувати предмети, дзвінки чи повідомлення, щоб увімкнути та вимикати певні дії
Можна вибрати зовнішній вигляд хмарної кнопки Amazon
Ви замовляєте кнопку Dash Button на Amazon і використовуєте програму на смартфоні, щоб підключити кнопку до мережі Wi-Fi, облікового запису на Amazon і наприклад, до вашої улюбленої марки паперових рушників.
Потім, коли ви захочете замовити паперові рушники, тиснете на кнопку. Вона підключиться до інтернету і надішле повідомлення, щоб замовити їх з вашого облікового запису Amazon. За кілька днів вам доставлять паперові рушники.
Як і API, Dash Button — це простий інтерфейс, який ховає свою складність від користувача. Ідентифікатор продукту, який ви замовили, має бути вилучений із бази даних. Ваша адреса доставки має бути вилучена з вашого обліку, найближчий до вас склад з рушниками потрібно повідомити про замовлення, а також відвантажити потрібний продукт зі складу та запакувати. Потім товар потрібно доставити за маршрутом разом із іншими посилками.
Тепер уявіть, що вам як клієнту довелося координувати все це.
Ви б ніколи не замовили паперові рушники, бо це надто важко.
На щастя, всі ці муки сховані від вас. За тим, щоб вам доставили рушники, стоїть довгий зв’язаний ланцюг комп’ютерних систем та координації людей. А вам потрібно лише натиснути кнопку.
Що потрібно запам’ятати про API
- Допомагає розробникам швидше писати код
- Буває публічним та приватним
- Робить складні операції простими для клієнтів
Джерела: статті у виданні InfoWorld та SproutSocial