Ми випустили нову книгу «Контент-маркетинг у соціальних мережах: Як засісти в голову передплатників та закохати їх у свій бренд».

API – це зовнішній інтерфейс програмування програми, звернення до сайтів за певним протоколом для отримання інформації та спрощеної розробки програм, пов'язаних із внутрішніми сервісами.

Що означає API

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

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

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

Плюси:

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

Мінуси:

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

Приклади API

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

VKAPI

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

Усі запити здійснюються на адресу https://api.vk.com/method/

Після слеша йде найменування використовуваного API-метода і передаються GET-параметри запиту. Відповідь також надходить по HTTPS у форматі JSON.

TELEGRAM BOT API

Одне з найпопулярніших API. З його допомогою здійснюється контроль роботів у месенджері Telegram. Після створення бот через @botfather і отримання необхідних ключів доступу, ви можете почати взаємодію з внутрішнім інтерфейсом.

Запити здійснюються за адресою https://api.telegram.org/bot0000000:token/

Де замість bot0000000 ставиться унікальний ідентифікатор вашого бота, а token висловлює секретний ключ.

Запити надсилаються через HTTPS з'єднання, назва методу вказується через слеш до основної адреси. Відповідь надходить у форматі JSON.

OPEN WEATHER MAP API

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

Формат робота: HTTP передача по api.openweathermap.org/data/2.5/weather?id= з вказівкою ідентифікаційного номера бажаного міста. Відповідь сервера: JSON.

GOOGLE MAPS API

Що може бути приємнішим, ніж інтерактивна карта світу на сайті? Особливо якщо це не шаблонна вставка з Google Maps, а ваша персональна редакція популярної карти з особистими кластерами маркерів. Карта буде взаємодіяти з іншими скриптами на сайті, надсилаючи інформацію про кліки та координати.

Подібні можливості пропонує JavaScript API Google Maps. Модуль повністю скриптовий та працює на стороні браузера, тому HTTP-запити з PHP та формування заголовків на стороні сервера, як було в інших API, нам не потрібно.

Наприклад, виставлення мітки на карті буде виглядати так:

var mark = new google.maps.Marker((
position: myPOS,
map: map,
title:"Hello!"
});

Для чого потрібне і чим корисне використання API

Корисних функцій досить багато.

Перший аспект

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

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

Другий аспект

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

  • Великий потік клієнтів.
  • Спрощений доступ до ваших послуг для партнерів.
  • Зручність статистичного аналізу використання сервісу.

Третій аспект

Майже той самий, що й другий. Але без необхідності реалізовувати API для відкритого доступу. Якщо у вас є портал і ви хочете створити під нього мобільний додаток на Android/IOS, то переписати систему під єдине API - найкраще рішення. Уся структура даних систематизується. Сайт та програма будуть працювати через єдині канали даних.

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

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

Власники інтернет-магазинів за допомогою сторонніх сервісів та власних додатків мають можливість звертатися за API до:

Інформація про оформлені замовлення

Доступні дії (методи) обробки інформації про замовлення:

  1. Вибір інформації про замовлення на ID
  2. Вибір інформації про замовлення по фільтру
  3. Кількість замовлень по фільтру
  4. Створення замовлення
  5. Видалення замовлення
  6. Масове видалення замовлень
  7. Вибір усіх доступних статусів для замовлень
  8. Оновлення статусу замовлення
  9. Додавання коментарю до замовлення

Інформація про передплатників

  1. Додавання передплатника
  2. Видалення передплатника
  3. Масове видалення передплатників
  4. Вибір даних про передплатників по фільтру
  5. Кількість передплатників по фільтру

Інформація про зареєстрованих користувачів

Доступні дії (методи) обробки інформації про передплатників:

  1. Вибір інформації про зареєстрованих користувачів за ID
  2. Вибір інформації про всіх зареєстрованих користувачів
  3. Вибір інформації про всі дані, вказані користувачем при реєстрації:
    • Прізвище ім'я по батькові;
    • Контактна адреса електронної пошти;
    • Контактний номер телефону;
    • Вказана адреса доставки: індекс, назва населеного пункту, назва вулиці, номер будинку, номер корпусу, номер квартири, поверх;

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

Плани розвитку API

Найближчим часом ми плануємо відкрити інтерфейси для підтримки взаємодії магазинів зі сторонніми програмами та сервісами по роботі з:

  1. Розділами каталогу.
  2. товарами.
  3. Кошиком.
  4. Знижки.
  5. способами доставки.
  6. способами оплати.

Для тестування взаємодії з API платформи beseller створено тестовий магазин beseller-api.shop.by.

Для доступу до тестового магазину необхідно вказати логін та пароль. Їх ви можете отримати на запит у вашого персонального менеджера.

Перед тестуванням взаємодії з API ми рекомендуємо:

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

Панель керування магазином доступна за адресою: beseller-api.shop.by/manager/. Логін та пароль при вході в панель управління аналогічні логіну та паролю доступу до магазину.

Як підключитися API до свого магазину?

Для зв'язку програми з вашим магазином необхідно вказати URL-адресу доступу до API виду:

http://адреса_вашого_сайту:8082/graphql?token=ваш_персональний_секретний_ключ

Секретний ключ ви можете отримати на запит у вашого персонального менеджера.

Функції та змінні GraphQL для роботи з API платформи beseller

Як підключитися до API за допомогою мови програмування PHP

Для зручності роботи з API платформи beseller ви можете скористатися:

  1. Класами, розробленими нами під PHP.
    1. GraphqlClient- здійснює прийом та передачу даних на сервер;
    2. GraphQlHelper- містить у собі реалізовані query та mutation API;
  2. Прикладами використання класів для здійснення вибірок та змін у базі даних інтернет-магазину.

Налаштування локального оточення

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

Як локальне оточення використовується GraphiQL Feen, це розширення для браузера Google Chrome, яке дозволяє формувати запити до API.

Після встановлення програми у браузері біля адресного рядка з'явиться іконка програми.

Відкрийте програму GraphiQL Feen і перейдіть на вкладку «SERVERS», виберіть метод відправки POST, після чого вкажіть URL-адресу доступу до API.

Як тестовий url необхідно використовувати наступну адресу:

Локальне оточення настроєне, можна формувати запити до API. Для цього потрібно відкрити вкладку «QUERIES»

Формування запиту до API beseller за допомогою GraphiQL Feen та отримана відповідь

Пояснення до скріншота:

  1. Збережені запити
  2. Поле для введення запитів
  3. Поле введення змінних
  4. Отримана відповідь
  5. Кнопка запуску

Приклад запиту отримання списку оформлених замовлень за вказаний проміжок часу

query ($first:Int, $offset:Int, $filter: OrdersFilterType)(
orders(first:$first, offset:$offset, filter:$filter)(
comment
status(
id
description
name
}
create_date
update_date
total (
suffix
value
}
payment (
name
description
cost (
suffix
value
}
}
delivery (
name
description
cost (
suffix
value
}
}
currencies (
bank_code
course
suffix
}
user_data (
name
description
value
}
}
}

Вказівка ​​часу для вибірки даних про оформлені замовлення

{
"filter": (
"date_after": "2017-11-16T00:00:01Z",
"date_before": "2017-11-23T00:00:01Z"
}
}

Приклад відповіді від API

{{
"data": (
"orders": [
{
"comment": "Culpa officiis vel ut.",
"create_date": "2017-11-22 16:23:28",
"currencies": [
{
"bank_code": "BYN",
"course": 10000,
"suffix": "крб."
}
],
"delivery": (
"cost": [
{
"suffix": "крб.",
"value": 0
}
],
"description": "Кур'єр",
"name": "custom"
},
"payment": (
"cost": [
{
"suffix": "крб.",
"value": 0
}
],
"description": "Пластикові картки",
"name": "custom"
},
"status": (
"description": "Новий",
"id": 1,
"name": "new"
},
"total": [
{
"suffix": "крб.",
"value": 4450
}
],
"update_date": "2017-11-22 16:23:28",
"user_data": [
{
"description": "Адреса e-mail",
"name": "email",
"value": " [email protected]"
},
{
"description": "Телефон",
"name": "phone",
"value": "784.392.3949 x69329"
},
{
"description": "Адреса",
"name": "registration",
"value": "607 Erik Station Suite 057 Reynaberg, WY 83542-0037"
},
{
"description": "Коментар",
"name": "comment",
"value": "Id nam illo optio."
},
{
"description": "ПІБ",
"name": "fio",
"value": "Jordi Mann MD"
}
]
}

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

API як засіб інтеграції додатків

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

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

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

За таким принципом побудовано протоколи передачі даних через Інтернет. Стандартний стек протоколів (мережева модель OSI) містить 7 рівнів (від фізичного рівня передачі біт до рівня протоколів додатків, подібних до протоколів HTTP та IMAP). Кожен рівень користується функціональністю попереднього («нижньолежачого») рівня передачі і, своєю чергою, надає потрібну функціональність наступному («вищележачому») рівню.

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

API бібліотеки функцій і класів включає опис сигнатурі семантики функцій.

Сигнатура функції

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

Наприклад, у мові програмування C++ проста функція однозначно пізнається компілятором з її імені та послідовності типів її аргументів, що становить сигнатуру функції у цій мові. Якщо функція є способом деякого класу, то сигнатурі братиме участь і ім'я класу.

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

З іншого боку, відмінності в API різних операційних систем суттєво ускладнюють перенесення програм між платформами. Існують різні методи обходу цієї складності - написання «проміжних» API (API графічних інтерфейсів wxWidgets, GTK тощо), написання бібліотек, які відображають системні виклики однієї ОС в системні виклики іншої ОС (такі середовища виконання, як Wine, cygwin і т. п.), введення стандартів кодування в мовах програмування (наприклад, стандартна бібліотека мови C), написання інтерпретованих мов, що реалізуються на різних платформах ( , python , perl , php , tcl , Java тощо).

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

Наприклад: щоб побачити у браузері рядок «Hello, world! », Досить лише створити HTML-документ з мінімальним заголовком і найпростішим тілом, що містить цей рядок. Коли браузер відкриє цей документ, програма-браузер передасть ім'я файлу (або вже відкритий дескриптор файлу) бібліотеці, що обробляє HTML-документи, та, у свою чергу, за допомогою API операційної системи прочитає цей файл і розбереться у його пристрої, потім послідовно викличе через API бібліотеки стандартних графічних примітивів операції типу «очистити віконце», «написати „Hello, world!“ вибраним шрифтом». Під час виконання цих операцій бібліотека графічних примітивів звернеться до бібліотеки віконного інтерфейсу з відповідними запитами, ця бібліотека звернеться до API операційної системи, щоб записати дані в буфер відеокарти .

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

Основними складностями існуючих багаторівневих систем API, таким чином, є:

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

Найбільш відомі API

Операційних систем

Цей короткий термін на слуху у всіх, хто стикався з розробкою. Але далеко не всі розуміють, що саме він означає і навіщо потрібний. Розробник Петро Газароврозповів про API простими словами у своєму блозі.

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

Всесвітнє павутиння та віддалені сервери

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

При введенні в адресний рядок браузера www.facebook.comна віддалений сервер Facebook надсилається відповідний запит. Як тільки браузер отримує відповідь, інтерпретує код і відображає сторінку.

Щоразу, коли користувач відвідує будь-яку сторінку в мережі, він взаємодіє з API віддаленого сервера. API – це складова частина сервера, яка отримує запити та надсилає відповіді.

API як спосіб обслуговування клієнтів

Багато компаній пропонують API як готовий продукт. Наприклад, Weather Underground продає доступ до свого API для отримання метеорологічних даних.

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

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

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

Чим API Google Календаря відрізняється від API будь-якого іншого віддаленого сервера в мережі?

Технічно, різниця у форматі запиту та відповіді. Щоб згенерувати повну веб-сторінку, браузер очікує на мову розмітки HTML, тоді як API Google Календаря поверне просто дані у форматі на кшталт JSON.

Якщо запит до API робить сервер веб-сайту компанії, він і є клієнтом (як і клієнтом виступає браузер, коли користувач відкриває веб-сайт).

Користувач завдяки API отримує можливість вчинити дію, не залишаючи сайт компанії.

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

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

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

Такі запити можна часто надсилати через браузер. Оскільки передача даних за протоколом HTTP відбувається у текстовому вигляді, браузер завжди зможе відобразити відповідь. Наприклад, через браузер можна безпосередньо звернутися до API GitHub (https://api.github.com/users/petrgazarov), причому без маркера доступу, і отримати таку відповідь у форматі JSON:

Браузер відмінно відображає JSON-відповідь, яку можна вставляти в код. З такого тексту досить просто витягти дані, щоб використовувати їх на власний розсуд.

Ще кілька прикладів API

Слово «application» (прикладний, додаток) може застосовуватись у різних значеннях. У контексті API воно має на увазі:

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

Будь-який фрагмент програмного забезпечення, який можна чітко виділити з оточення, може замінювати букву «А» в англомовній абревіатурі, і теж може мати деякий API. Наприклад, при впровадженні в код розробником сторонньої бібліотеки вона стає частиною всього додатка. Будучи самостійним фрагментом ПЗ, бібліотека матиме якийсь API, який дозволить їй взаємодіяти з іншим кодом програми.

В об'єктно-орієнтованому проектуванні код подано у вигляді сукупності об'єктів. У додатку таких об'єктів, які взаємодіють між собою, може бути сотні. Кожен з них має свій API — набір публічнихвластивостей та методів для взаємодії з іншими об'єктами у додатку. Об'єкти можуть також мати приватну, внутрішню логіку, яка прихована від оточення та не є API.

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

API (application programming interface) - це інтерфейс прикладного програмування. Якщо говорити більш простою мовою, це набір різних функцій, констант, класів, форматів запитів, які можна використовувати інших програмах.

Можна вважати, що API- це якийсь об'єкт, реалізацію якого ми не знаємо, проте можемо його використовувати. Наприклад, комп'ютер - об'єкт, реалізацію якого знають дуже мало людей, однак, використовувати його можуть майже всі, здійснюючи якісь дії: перегляд відео, серфінг по Інтернету, друк тексту та інше. Як це все працює – мало, хто знає, а ось робити це можуть чи не всі.

прикладом APIє Windows API, OpenGL API, Direct3D APIі так далі.

Наприклад, нещодавно я теж зіткнувся безпосередньо з API. Я зареєструвався на сервісі поштових розсилок SmartResponder.ruі завів розсилку, на яку стали підписуватися люди. Завдання було наступне: протягом доби після підписки людина може придбати зі знижкою мій платний відеокурс. Бо вся інформація про передплатників зберігається на сервері SmartResponder.ru", то звичайний доступ (наприклад, через БД) до цих даних я не мав, а реалізовувати це було потрібно. Благо, у " SmartResponder.ruє свій власний API, Яким я і скористався.

Я знайшов у них APIформат запиту, щоб витягти дату передплати. Далі через CURLя надіслав відповідний запит і отримав потрібну дату передплати для конкретного e-mail адреси. Далі стандартна обробка та виведення результату.