API
API расшифровывается как
Application Programming Interface – программный интерфейс приложения.
Это набор команд, функций, классов и других сведений, который
предоставляет та или иная программа для взаимодействия с другой
программой. С помощью API можно, например, встроить на страницу сайта
определенные элементы какой-нибудь социальной сети. Встроенные
публикации «ВКонтакте» или Twitter на веб-ресурсах – результат
применения программных интерфейсов. Взаимодействие между сервером и
сайтом тоже происходит с их помощью.
Для чего используются API
Знать, что такое
API и как им пользоваться, необходимо каждому программисту. Людям,
занятым в диджитал-сфере, желательно иметь представление о технологии,
даже если сами они не пишут код, потому что применение программных
интерфейсов крайне обширно. Они используются:
- для
написания приложений, интегрированных друг с другом. Это может быть что
угодно: от бота в мессенджере, сообщающего о входящих на адрес email, до
возможности комментировать публикации на стороннем сайте через соцсеть;
- объединения
разных программ в единую систему. При этом необязательно знать, как
функционирует отдельное приложение, важны лишь API, которые оно
предоставляет, и принцип работы с ними.
Функции и принцип работы
Программные
интерфейсы в чем-то похожи на сетевые протоколы: эти понятия близки по
смыслу, только протоколы отвечают за передачу данных, а API – за связь
между разными программами. Работа с ним, если серьезно упростить,
выглядит так:
- приложение «А» предоставляет набор классов,
библиотек и других сведений, с помощью которых можно пользоваться
элементами «А» в другой программе;
- программист приложения «Б» использует эти классы и библиотеки, чтобы встроить в свою программу часть функций «А»;
- при
использовании API приложение «Б» связывается с сервером «А», получает
оттуда необходимую информацию или выполняет какие-либо действия.
Пользователь,
работая с программой и используя возможности другого приложения,
зачастую даже не догадывается, что это такой API. Некоторые из них
настолько привычны, что даже не воспринимаются как элементы сторонних
программ.
Классы и типы. Соответственно, API делятся на два больших класса:
- изменяющие. В результате их действия меняется информация на сервере, к которому обращается API. Пример такого интерфейса – написание комментариев на стороннем сайте с помощью соцсети. То есть пользователь, зашедший на страницу, сможет прокомментировать ее содержимое через аккаунт в социальной сети.
Существует и более широкая классификация – по типу использования и
назначению. Выделяют графические API, которые позволяют отрисовывать
картинку в компьютерных играх или при создании графики, интерфейсы
операционных систем, дающие программисту работать с функциями Windows
или Linux, звуковые, сетевые, серверные и так далее. Зачастую, если
система сложная, у нее есть несколько разных API, позволяющих решить
одну и ту же задачу разными методами.
Открытые и закрытые. По способу использования выделяют:
- частные,
или закрытые, API, которые доступны только для разработчиков какого-то
внутреннего продукта. С их помощью разные подсистемы одной и той же
большой программы связываются между собой;
- внешние, они же
открытые API. Их применяют для соединения возможностей разных программ, и
доступ к ним свободен для всех, кто хочет интегрировать в свой продукт
элементы другого приложения.
Web API для веб-мастеров
Для
работы с веб-сайтами используются так называемые Web API, которые, по
сути, синоним веб-службы. Они включают в себя HTML-запросы, ответы,
которые обычно приходят в формате XML или JSON. С их помощью
осуществляется не только интеграция между разными веб-сервисами. Даже
для создания и отображения обычной HTML-страницы понадобится применить
несколько API: графических примитивов, операционной системы и других.
Они крайне широко используются, многие пользователи даже не думают, что
это API: сервисы email, поисковые системы, сайты-хранилища – все они
масштабно используют программные интерфейсы.
Преимущества API
Очевидно,
что без использования интерфейсов создавать полноценные приложения
попросту невозможно. Речь идет о стандартных API вроде тех, что
позволяют программам взаимодействовать с ОС. Но даже если говорить не о
них, а об интерфейсах, которые предлагают популярные соцсети и сайты,
технология практически незаменима и имеет множество преимуществ:
- простоту.
Для работы с API «Яндекса» не нужно знать, как устроен сам «Яндекс»,
понадобится только разобраться в библиотеках и функциях, которые он
предоставил;
- обилие возможностей. С помощью программных
интерфейсов можно реализовывать сложные и масштабные функции. Писать
такое с нуля может быть очень сложно или вообще невозможно. Например,
агрегатор для покупки авиабилетов просто не сможет функционировать без
обмена сведениями с сайтами авиакомпаний;
- совместимость. Один и тот же API может быть совместим с огромным количеством других систем и без проблем использоваться на разных платформах.
Сложности при работе с API
- Если нужно
перенести функциональность одного интерфейса в другой, у программистов
могут возникнуть сложности. Как пример – адаптация программ для Windows
под Mac OS. Операционные системы используют разные API, и для переноса
всех функций программы понадобится изменить все модули, которые
взаимодействуют с ОС.
- При переходе на более высокий (то есть
более близкий к пользователю) уровень взаимодействия может потеряться
часть функций. Некоторые возможности облегчаются, другие становятся
недоступны, или их приходится реализовывать иначе.
Использование в рекламе
Существуют
API, о которых обязан знать любой SEO-специалист или
интернет-маркетолог. В первую очередь это, конечно, программные
интерфейсы поисковых систем.
- Например, API «Яндекс.Директа»: с его помощью можно гибко настраивать рекламные кампании, просматривать статистику, создавать приложения, работающие с контекстной рекламой самостоятельно.
- Сервисы поисковых систем для просмотра статистики и вебмастерские панели тоже требуют использования API.
- Если
перед маркетологом стоит цель продвижения в соцсетях, можно
интегрировать элементы социальной сети в сайт. Например, демонстрировать
пользователям сайта записи в официальном сообществе компании в соцсети.
- Для
сервисов, которые не могут работать без информации с серверов других
ресурсов (яркий пример – разнообразные агрегаторы), использование API
незаменимо.