Это как USB-переходник от любого телефона к любой зарядке (ну почти любого).

API (от английского Application Programming Interface, программный интерфейс приложений) – специальный интерфейс, который могут использовать разработчики.

Главная цель использования API — внедрение в собственный продукт функций стороннего приложения.

Например, сервис доставки еды использует «Яндекс.Карты» в своем приложении. Потому что зачем небольшой компании заниматься разработкой собственного картографического сервиса, если можно использовать готовую и классно работающую карту?

Или, скажем, любая оплата на любом сайте всегда происходит через сторонний API. Независимо от того, что и где вы покупаете: телевизор в «М.Видео» или хостинг в Beget. После нажатия кнопки «Оплатить» сайт передает вас «в руки» API сервиса, который проводит оплаты.

Что делает API

По сути, API – это подобие руководства пользователя (например, от стиральной машины). Руководство содержит описание кнопок, функций и команд, которые может выполнять стиральная машина при определенных условиях.

Корректно провести аналогию и с юридическим контрактом. Контракт содержит обязанности сторон, допустимые и недопустимые действия, порядок работы. Так же будут взаимодействовать и два приложения друг с другом.

Главная цель использования API – связывание компонентов одного приложения с другим. Как это работает:

База данных взаимодействует с веб-сервером, API (через интернет) и веб-приложением

Если API перестанет работать, то отключатся и все связанные с ним сервисы, инструменты, программы.

Что еще понимается под API

Термин API также может использоваться для обозначения следующих явлений:

  • приложение в полном объеме;
  • самостоятельная часть приложения;
  • фрагмент ПО, используемый для реализации конкретной функции;
  • сервер в полном объеме.

API – это определенный набор компонентов, который позволяет одной программе обмениваться данными с другой программой. Также под термином API может пониматься и описание способов обмена ПО (константы, классы, структуры, функции, процедуры и другие элементы).

Если говорить совсем понятно, то API – это просто набор функций.

Благодаря API вы можете выполнить целый ряд задач и вам не нужно писать для этого отдельные программы, раз они кем-то уже написаны

Чем API отличается от протокола? По назначению они действительно схожи. Но есть разница: Application Programming Interface относится к тому, как приложения взаимодействуют друг с другом. А протокол – только к передаче информации (точнее – данных).

Использование API в бизнесе

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

Благодаря программному интерфейсу приложений разработчики не думают об особенностях запросов разных приложений (например), а просто используют чужие инструменты и функции в своем приложении. Наглядно: производитель домов сам не производит окна, а покупает и вставляет готовые. Подготовленный по нужным размерам оконный проем в этом случае будет работать как API.

Компании используют API для соединения собственных данных с клиентскими данными, либо с данными систем-партнеров.

API «Яндекс.Карт» — это, по сути, кусок кода, который позволяет использовать инструменты сервиса «Яндекс.Карт» в вашем мобильном приложении, на сайте, веб-приложении

Примеры использования API бизнесом

Возьмите любой популярный сервис. Например, «Яндекс.Метрику». На сайте сервиса вы увидите, что разработчик предлагает собственный API – для оптимизации формирования счетчиков, работы с данными и статистикой, настройки целей.

Получение статистики, изменение настроек собственных и чужих счетчиков, генерация счетчиков – все это легче проводить программным способом, при помощи API

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

Еще один пример – API ЮMoney. Благодаря ему можно настроить получение HTTP-оповещений о совершенных переводах, получение и отправку переводов из кошелька ЮMoney, отправку запросов о кошельке:

Уведомления HTTP-уведомления разрешено доставлять только на один серверный адрес

Google, Twitter, Google Analytics, Dropbox, Upwork, Spotify – у всех этих инструментов есть свои API

Есть и такие разработчики, которые предлагают API в качестве самостоятельного инструмента. Например, Weather Underground. Разработчик создает готовые решения для метеорологических приложений, сайтов и сервисов. Чтобы у них был актуальный прогноз погоды – остается только купить API Weather Underground.

Вы наверняка пользуетесь агрегаторами – купонов, цен, билетов, товаров. Так вот: все они работают благодаря сторонним API, число которых может превышать несколько десятков.

Кстати, авторизация через социальные сети на публичных веб-сайтах – также сделана при помощи API (у каждой социальной сети свой программный интерфейс).

Если не хотите писать отдельный код для регистрации, используйте плагин регистрации через соцсети — и он будет работать тоже через API

Основные сценарии использования API

Вот самые частые типы API и модели их внедрения на сайте:

  • Сохранение данных на клиентской инфраструктуре;
  • Получение информации с сервера. Пример: карточный сервис MapQuest или WikiMapia;
  • Взаимодействие с документами. Например, «Яндекс.Документы» или веб-версия «Microsoft 365 для Интернета»;
  • Вывод медиафайлов, например, видеороликов или звука.

Недостатки API

Наш рассказ не будет объективным, если мы не упомянем недостатки технологии. Вот самые заметные из них:

  • API может работать некорректно. На рынке большое количество неработающих или плохо работающих интерфейсов — потому что API часто создают не узкоспециализированные разработчики, а те, кто занимается приложениями (как правило).
  • API не подходит для внедрения специфических решений. Все API рассчитаны для решения типичных сценариев и задач.
  • Затруднено портирование между платформами. Перенести код с одной API на другую при изменении операционной системы (или другом портировании) может быть очень непросто, даже квалифицированному разработчику.

Чтобы решить проблему портирования API, разработчики используют множество подходов, например – стандартизируют используемые языки, создают кроссплатформенные библиотеки, используют кроссплатформенные языки. В некоторых случаях – создаются кастомные библиотеки, которые выводят вызовы определенной ОС в другие ОС (внутри системы).

API Avito позволяет интегрировать данные из Avito в привычную менеджеру CRM. При этом можно проверять метрики эффективность объявлений, размещать их, вести диалог с клиентами, загружать фотографии, искать сотрудников

  • Нельзя посмотреть исходный код приложения.
  • Очень сложно внести изменения внутри API, даже если возникает острая необходимость.
  • Не разработаны стандарты. Из-за этого возникают сложности при взаимодействии с API.

От недостатков – переходим к достоинствам.

Преимущества API

Вот главные преимущества программного интерфейса приложений для пользователей, разработчиков и компаний:

  • Возможность добавлять сторонние функции на сайт или в приложение.
  • Ускорение процесса разработки.
  • Упрощение внедрения чужих программных компонентов. Интеграция сторонних решений происходит в кратчайшие сроки.
  • Снижение уязвимости при работе с чужими компонентами. В свою очередь, оригинальный разработчик может не бояться, что его компоненты будут скомпрометированы – функциональные элементы остаются закрытыми.
  • Упрощение внедрения безопасных транзакций на сайте или в приложении.
  • Быстрое импортирование / экспортирование данных из веб-приложений в десктоп-приложения.
  • Возможность быстрой агрегации данных – из множества веб-источников.

Теперь, когда вы будете планировать новую фичу на сайте (например, регистрацию или карты для раздела «Контакты»), не бегите искать программиста. Подумайте, может, вы видели на другом ресурсе «кусочек» чужого решения? Это и был API — и, возможно, вам будет проще найти готовое решение. Теперь вы знаете, как это работает.