Що таке API?
Ви, напевно, бачили термін "API". Операційна система, веб-браузер і оновлення програм часто оголошують нові API для розробників. Але що таке API?
Інтерфейс прикладного програмування
Термін API є абревіатурою, і це означає "інтерфейс прикладного програмування".
Подумайте про API, як меню в ресторані. Меню містить список страв, які можна замовити, а також опис кожного блюда. Коли ви вказуєте, які пункти меню ви хочете, кухня ресторану виконує роботу і надає вам готові страви. Ви точно не знаєте, як ресторан готує таку їжу, і вам це не потрібно.
Аналогічно, API містить перелік операцій, які можуть використовувати розробники, а також опис того, що вони роблять. Розробнику не обов'язково знати, як, наприклад, операційна система будує і представляє діалогове вікно «Зберегти як». Вони просто повинні знати, що вони доступні для використання в їхніх програмах.
Це не ідеальна метафора, оскільки розробникам доведеться надавати свої власні дані API, щоб отримати результати, тому, можливо, це більше схоже на химерний ресторан, де ви можете надати деякі власні інгредієнти..
Але це цілком точно. API дозволяють розробникам заощаджувати час, скориставшись реалізацією платформи, щоб виконати роботу зі знижкою. Це допомагає зменшити кількість розробників коду, які необхідно створити, а також допомагає створювати більшу узгодженість між додатками для однієї платформи. API можуть контролювати доступ до апаратних і програмних ресурсів.
API полегшують життя розробникам
Припустимо, ви хочете розробити програму для iPhone. Операційна система iOS від Apple надає велику кількість API-інтерфейсів, оскільки будь-яка інша операційна система робить це легше для вас.
Якщо ви хочете вбудувати веб-браузер для відображення однієї або декількох веб-сторінок, наприклад, ви не повинні програмувати свій власний веб-браузер з нуля тільки для вашої програми. Ви використовуєте WKWebView API для вбудовування об'єкта браузера WebKit (Safari) у вашу програму.
Якщо ви хочете знімати фотографії або відео з камери iPhone, вам не потрібно писати власний інтерфейс камери. Ви використовуєте API камери, щоб вставити вбудовану камеру iPhone у ваш додаток. Якщо API не існує для спрощення, розробникам додатків доведеться створити власне програмне забезпечення для фотоапаратів і інтерпретувати входи апаратного забезпечення камери. Але розробники операційної системи від Apple зробили всю цю важку роботу, щоб розробники могли просто використовувати API камери, щоб вставити камеру, а потім почати роботу зі створенням свого додатка. І, коли Apple покращує API камери, всі програми, які покладаються на неї, скористаються цим поліпшенням автоматично.
Це стосується кожної платформи. Наприклад, ви хочете створити діалогове вікно у Windows? Для цього існує API. Хочете підтримувати автентифікацію за відбитками пальців на Android? Існує API для цього, так що вам не доведеться перевіряти сенсор відбитків пальців кожного виробника Android. Розробникам не потрібно знову винаходити колесо.
API для контролю доступу до ресурсів
API також використовуються для контролю доступу до апаратних пристроїв і функцій програмного забезпечення, які не обов'язково мають дозвіл на використання. Ось чому API часто відіграють велику роль у безпеці.
Наприклад, якщо ви коли-небудь відвідували веб-сайт і бачили у вашому веб-переглядачі повідомлення про те, що веб-сайт просить побачити ваше точне місцезнаходження, цей веб-сайт намагається використати API геопозиціонування у веб-переглядачі. Веб-браузери розкривають такі API, що полегшують веб-розробникам доступ до вашого місцеположення - вони можуть просто запитати, "де ви знаходитесь?".
Однак веб-переглядачі також надають цю інформацію через API, оскільки можна керувати доступом до неї. Коли веб-сайт хоче отримати доступ до вашого точного фізичного розташування, єдиний спосіб отримати його можна за допомогою API місцезнаходження. І, коли веб-сайт намагається використати його, ви-користувач може дозволити або заборонити цей запит. Єдиний спосіб отримати доступ до апаратних ресурсів, таких як датчик GPS, через API, тому браузер може контролювати доступ до апаратних засобів і обмежувати те, що програми можуть робити.
Цей же принцип застосовується на сучасних мобільних операційних системах, таких як iOS та Android, де мобільні програми мають дозвіл, який можна застосовувати, контролюючи доступ до API. Наприклад, якщо розробник намагається отримати доступ до камери за допомогою API камери, можна заборонити запит дозволу, і програма не має доступу до камери вашого пристрою.
Файлові системи, які використовують дозволи, як це роблять у Windows, Mac і Linux, мають такі права доступу, що застосовуються API файлової системи. Типова програма не має прямого доступу до необробленого фізичного жорсткого диска. Замість цього, програма повинна мати доступ до файлів через API.
API використовуються для зв'язку між послугами
API використовуються також для всіх інших причин. Наприклад, якщо ви коли-небудь бачили об'єкт Карт Google, вбудований на веб-сайті, цей веб-сайт використовує API Карт Google для вбудовування цієї карти. Google надає API, подібні до цього, веб-розробникам, які згодом можуть використовувати API для складних об'єктів прямо на своєму веб-сайті. Якщо таких API не існує, розробникам, можливо, доведеться створити власні карти та надати власні дані карти лише для того, щоб розмістити невелику інтерактивну карту на веб-сайті..
Оскільки це API, Google може контролювати доступ до Карт Google на веб-сайтах третіх сторін, гарантуючи, що вони використовують його послідовно, а не намагаються вбудувати фрейм, який показує веб-сайт Карт Google, наприклад.
Це стосується багатьох різних онлайн-служб. Є API для запиту перекладу тексту з Перекладача Google або вбудовування коментарів або твітів Facebook із веб-сайту Twitter.
Стандарт OAuth також визначає ряд API, які дозволяють входити на веб-сайт з іншою службою - наприклад, щоб використовувати облікові записи Facebook, Google або Twitter для входу на новий веб-сайт без створення нового облікового запису для цього сайту . API - це стандартні контракти, які визначають, як розробники спілкуються з сервісом, і вид продукції, яку розробники повинні очікувати отримати назад.
Якщо ви пережили це, ви краще зрозумієте, що таке API. Зрештою, вам не потрібно знати, що таке API, якщо ви не є розробником. Але, якщо ви бачите, що програмна платформа чи служба додала нові API для різних апаратних засобів або служб, розробникам повинна бути легше використовувати такі функції.
Зображення кредит: patpitchaya / Shutterstock.com.