API: определение, принцип работы, примеры использования
Что такое API простыми словами
Аббревиатура API — это сокращение термина «Application Programming Interface», или программный интерфейс приложения, которое на слуху не только у программистов, но и у обычных пользователей, которые хоть как-то взаимодействуют с гаджетами. Но при этом оно остаётся не вполне ясным для большинства людей: многие просто повторяют эту последовательность букв и не могут чётко объяснить их значение. Люди либо теряются и замолкают в ответ на вопрос, что же такое API, либо говорят, что это способ коммуникации нескольких компьютерных программ.И в этом они правы. У программного интерфейса имеется всё необходимое (классы, структуры, методы и функции), чтобы с ним могло взаимодействовать стороннее приложение. Говоря простыми словами, API — совокупность специфических «мостиков», по которым данные из одной программы передаются в другую или по которым одна программа может получить доступ к ряду возможностей другой. Благодаря API программисты расширяют функциональность собственных приложений и связывают их с продуктами других разработчиков.
Разумеется, при этом должно быть получено разрешение на использование API от авторов программы и соблюдаться все правила безопасности, чтобы никакие конфиденциальные данные не «утекли».
API есть не только у программ, но и:
- У языков программирования. Все функции языка играют роль приложений, а API необходим, чтобы обеспечить их взаимодействие: это набор инструкций, позволяющий правильно вызывать нужные функции.
- У операционных систем. Пользовательские программы работают с данными из ОС, а в некоторых случаях даже меняют её настройки. Если вы пишете приложения для Linux, iOS или Android, необходимо превосходно знать API своей операционки, чтобы манипулировать файлами, изображениями.
- У различных веб-сервисов. Благодаря API к ним могут подключаться сторонние приложения и веб-сервисы.
Благодаря интерфейсному подходу несколько утилит могут плотно взаимодействовать, и их разработчикам не нужно досконально знать, как устроен чужой программный продукт, как циркулируют данные внутри него, какова его программная логика. API применяют не только программисты, но также и простые пользователи. Если для разработчиков огромную роль играет возможность быстро и успешно интегрировать свой продукт с чужим, то обычным юзерам хочется просто наслаждаться любимыми гаджетами и программами, не забивая себе голову тем, как они устроены.
Сокрытие ряда функций с целью упростить совместную работу и оставить как можно меньше «узких мест», где программист может ошибиться, носит название инкапсуляции.
Сферы использования API
API открывает разработчикам следующие возможности:- Делает ПО более надёжным. Больше нет необходимости лезть в код, чтобы понять, как реализованы низкоуровневые функции (и просить доступ к исходникам). И внешние, и внутренние задачи решаются приложением более безопасно. Риск ошибок, вызванных человеческим фактором, существенно снижается.
- Упрощает процесс разработки, сокращает её сроки. Например, можно взять готовый сторонний API нейронной сети, надёжный и опробованный, и внедрить в свой продукт, не тратя ресурсы на создание ML-системы с нуля.
- Интеграция программ и онлайн-сервисов различных вендоров тоже упрощается. Теперь даже нет необходимости контактировать с их владельцами и разработчиками. API, в частности, позволяет легко наладить использование банковских аккаунтов в платёжных системах.
- Косвенно способствует увеличению прибыли компании. Каждый запрос, отправляемый сторонним приложением через API, можно монетизировать. Так работают, например, конвертеры файлов в разные форматы, сервисы с прогнозом погоды на ближайший месяц или неделю.
- Затраты на разработку ПО (и, следовательно, его себестоимость) снижаются.
API удовлетворяют следующие потребности бизнеса:
- осуществление транзакций;
- интеграция потоков данных с информацией о клиентах, партнёрскими сервисами;
- повышение безопасности автоматизированных процессов;
- возможность создать собственное приложение;
- внедрение инноваций, особенно во взаимодействии с покупателями.
Государственные органы тоже широко используют API:
- для обмена сведениями между ведомствами;
- для информирования населения, получения обратной связи.
Набор функций, доступных через API, определяют создатели приложения, поставляющего программный интерфейс. API может быть самостоятельным продуктом или узким инструментом под конкретные задачи, такие как:
- Работа со звуком, изображением или видео. Визуализировать 2D и 3D-графику можно с помощью утилит WebGl и Canvas.
- Работа с документами. DOM (Document Object Model) позволяет манипулировать элементами веб-страницы, менять её вид.
- Получение данных (валютных котировок, информации о погоде, картографических сведений) с сервера.
- Считывание данных с устройств (ПО для навигатора перехватывает его местоположение и строит маршрут).
- Хранение пользовательской информации. В API Web Storage, в частности, можно хранить намного больше сведений, чем в традиционных браузерных Cookies.
Принцип работы API
Любой API работает по очень простому принципу:- Разработчик создаёт свой программный продукт, будь то приложение, операционная система или функция.
- В дополнение к программе создаётся API — список правил, по которым сторонние программисты могут так или иначе использовать эту программу.
- Доступ к API может быть публичным или строго по запросу.
- Готово! Можно встроить API в своё приложение, воспользоваться нужными функциями.
Кстати, вы тоже можете снабдить собственное приложение функциями API: набором инструкций для обращения к нему других сервисов. Это позволит настроить его интеграцию со сторонними программами.
У всех API есть четыре базовые функции: получение данных, их редактирование, отправка, удаление. Каждая из них предполагает запрос в сторонний сервис, который выдаёт тот или иной ответ.
Конкретное наполнение этих функций определяется назначением программы, предоставляющей свой API. Вот самые распространённые варианты:
- вы запрашиваете курсы валют с сервера;
- авторизуетесь в CRM, где можете добавлять, редактировать, удалять записи;
- банковская система проводит оплату покупки;
- API расшифровывает запись речи, переводя её в текст;
- магазин получает из базы данных сведения о товарных остатках.
Или, предположим, утилита для комментирования постов. Нет необходимости создавать её заново, подобных сервисов уже написано немало, просто подберите подходящий и внедрите к себе на сайт, подключившись к нему через API.
Доработка внутренней CRM-системы тоже упрощается благодаря API. Если вам, например, потребовалось добавить трекер времени, вы, конечно, можете его создать сами, но есть и другой путь: найти готовый инструмент и подключить его API в свою CRM.
Как бы то ни было, использование API — это экономия времени и усилий разработчиков (а, значит, и бюджета, выделенного на эти цели).
Дополнительным преимуществом API является то, что с ними ваши приложения становятся безопаснее. Если вы не являетесь специалистом в этой области, то создать достаточно надёжный сервис, отвечающий всем требованиям безопасности (например, авторизацию или платёжную систему), вам вряд ли удастся. Но, к счастью, есть API, чьи авторы как раз специализировались на безопасности и разбираются в ней досконально. Просто воспользуйтесь плодами их трудов и решайте свои насущные задачи.
Применение программных интерфейсов охватывает всё новые и новые сферы. Сегодня даже такие нехитрые встраиваемые системы, как «умный утюг», содержащие одну-единственную программу, интегрируются в интернет вещей (разумеется, тоже через API).
Примеры использования API
Примеры API, многие из которых нам хорошо знакомы:- Быстрая регистрация в приложениях через аккаунт в соцсети (Вконтакте и т. п.) — показательный пример API. Пользователь может выбрать любую сеть из предложенных. Сторонним компаниям такие API позволяют упростить и ускорить пользователям доступ к их собственному продукту. Для этого нужно просто встроить на сайт специальный код.
- Интеграция контента из многочисленных сервисов Google (например, встраивание видеороликов с YouTube прямо на сайт или в приложение). Разработчики стороннего ПО могут без труда импортировать в них информацию из сервисов Google.
- API как готовый к использованию программный продукт от коммерческих фирм. Например, Weather Underground за деньги предоставляет доступ к собственному API, где собраны метеорологические данные для любой точки планеты.
- Приложение «Календарь» на Android от Google. API позволяет интегрировать его в стороннее приложение напрямую. Можно пользоваться несколькими программами, где присутствует функционал этого календаря, встроенного и постоянно обновляемого: намечать важные встречи, дела и события. На корпоративных сайтах тоже часто можно встретить этот календарь (если, например, посетители должны записываться на приём в определённое время), обычно в формах записи. Событие и его описание автоматически подтягиваются в календарь, по API летит запрос на сервер Google, где создаётся событие, которое возвращается в браузер — и клиент видит подтверждение своей встречи.
- Агрегаторы для покупки авиабилетов (SkyScanner, Aviasales). Эти онлайн-сервисы собирают информацию о рейсах и цены билетов у разных авиаперевозчиков и аккумулируют её у себя на портале. Данные о ценах и направлениях обновляются в режиме реального времени по API, которые имеются на сайтах авиакомпаний.
- Яндекс.Метрика с её полезными утилитами. Этот API создавался специально для того, чтобы устанавливать счётчики, вести аналитику, настраивать цели.
- Авторизация в соцсетях (Одноклассниках, Вконтакте) по кнопкам, встроенным в код сайтов. Чтобы выполнить какое-либо действие (их набор определяется утилитой), пользователь может быстро и безопасно зайти в свой аккаунт, не покидая сайта. Для владельца веб-ресурса этот API — источник персональных данных нынешних и потенциальных покупателей, причём собираемых вполне легально.
- Виджеты Calltouch для партнёрского маркетинга, позволяющие пересылать с сайта заявки из форм, удалённо заводить звонки и отправлять их в CRM или даже в сторонние сервисы, создавать сделки на основе звонков и заявок, и т. п.
Без API уже трудно представить современный веб-сайт или приложение. Программные интерфейсы позволяют разработчикам за короткий срок и без лишних затрат создать новый сервис, использовав чужое ПО, или же, наоборот, поделиться со всем миром своими наработками. И чем дальше развиваются технологии, тем активнее используются различные API.