› ЧТО ТАКОЕ API

Что такое API

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

Определение API

Начнем с определения, что такое API простыми словами. Это аббревиатура, полученная от фразы Application Programming Interface, что в переводе означает «программный интерфейс приложения». Он представляет собой набор правил, согласно которым программы разных разработчиков могут беспрепятственно общаться друг с другом.

Основные направления, где встречается API:
  1. Программирование в целом.
  2. Операционные системы.
  3. Веб-сервисы.
Последний вариант является приоритетным, т.к. чаще речь идет об облачной инфраструктуре. Те же интернет-магазины постоянно обмениваются цифрами со складским, бухгалтерским ПО, чтобы отправить заявки, сведения об оплате, получить информацию о комплектации заказа и т.д. За счет унификации запросов API легко подключать к новым продуктам, старому софту.

Почему API называется интерфейсом

Термин «интерфейс API» прижился из-за схожести работы программного механизма и общения между клиентом и поставщиком. Например, текущую погоду в виджете на смартфоне мы просматриваем благодаря тому, что сервер метеослужбы регулярно транслирует ее через этот интерфейс. Стоит пользователю нажать «обновить» на телефоне, как запрос исполняется.

Особенности технологии:
  1. Система скрывает внутреннее устройство взаимодействующих приложений.
  2. Программисту не требуется разбираться в чужом коде, чтобы понять, как применить API.
  3. Вызов функций сторонних сервисов настраивается путем стандартных запросов.

Все, что требуется разработчику, это ознакомиться с документацией, изучить доступные методы, форматы запросов/ответов, ограничения. И внедрить поддержку в своем продукте. Нередко в код вставляют готовые библиотеки для работы с конкретным API, предоставленные их автором. Такой подход ускоряет и упрощает интеграционные процессы.

Как работает API

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

Типы API

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

REST API
Наиболее распространенным вариантом является REST API. По сути, это и есть набор принципов и правил, по которым функционирует система обмена через интерфейс. Например, подразумевается, что любое взаимодействие происходит по принципу «клиент-сервер», когда каждый запрос является самодостаточным. Общение предполагается при помощи стандартных методов HTTP вроде GET, POST, PUT, DELETE.
Преимущества REST API:
  1. Простота освоения функционала.
  2. Стандартизированные методы взаимодействия.
  3. Хорошая совместимость с веб-технологиями.
  4. Высокая масштабируемость.
Из минусов стоит отметить, что использование в REST API текстовых форматов перегружает сеть (по сравнению с бинарными). В системе не предусмотрены встроенные механизмы защиты, поэтому разработчикам приходится самим внедрять средства аутентификации/авторизации. Чуть добавляет сложностей отсутствие строгой спецификации. Программисты вынуждены реализовывать API на основании требований конкретных проектов.

SOAP API
Менее популярен SOAP, Simple Object Access Protocol. Причина объяснима: передаваемые данные всегда должны оформляться в соответствии со спецификацией языка XML. Иначе сервер откажется от взаимодействия с выдачей ответа в виде ошибки. Здесь большое внимание уделяется безопасности, но за счет усложнения процедуры запросов. Систему используют в банковских приложениях, там, где происходит обмен коммерческими, персональными данными.

GraphQL
Следующий тип API – GraphQL, представляет собой целый язык запросов. Он сложен, зато при грамотном применении способен, например, при помощи одного обращения получить сведения из нескольких источников одновременно. «Чистому» REST такое недоступно. Гибкость технологии проявляется и в возможности избегать передачи лишних данных.
Правда, с безопасностью здесь столь же печально, как в «оригинальной» системе. Разработчикам приходится самостоятельно думать, как защитить канал передачи сведений от хакерских атак. Еще стоит отметить относительную сложность настройки, небольшое количество готовых библиотек, из-за чего программисты вынуждены сами решать вопросы внедрения.

RPC (qRPC, tRPC)
Протокол RPC – это решение, позволяющее вызывать функции, размещенные на удаленном хосте, как будто бы они выполняются локально. Такой подход интересен, например, для существенного сокращения кода, роста производительности независимо от мощности клиента.
Существует несколько модификаций: gRPC разработана Google, tRPC «заточен» на использование языка TypeScript. Чтобы освоить эту технологию, придется разобраться в довольно сложном языке описания интерфейсов (IDL, Interface Definition Language).

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

Функции API: что делают с его помощью

Разобрались, как работает API и каких типов он бывает. Теперь рассмотрим базовый функционал, преимущества. Общими словами, возможности интерфейса отражаются одним предложением: «получение, отправка, корректировка или удаление данных».

Конкретика зависит от приложения, куда система внедрена:
  1. Получение текущего курса валют.
  2. Вход в CRM-систему под конкретным логином.
  3. Проведение платежей в интернет-магазине.
  4. Распознавание изображений и конвертация в текст.
  5. Получение актуальных цен, остатков товаров.

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

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

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

Подробнее о плюсах:
  1. Схожим примером являются библиотеки в языках программирования. Их подключают по мере необходимости, а не пишут каждый раз «с нуля».
  2. Открываются возможности быстро подключаться к сторонним разработкам и экономить на оплате программистов.
  3. Повышается уровень безопасности, т.к. готовые решения обычно создают профессионалы в конкретной области. Например, по тем же платежам, схемам авторизации.

Своих разработчиком рациональнее занять более прямыми задачами – развитием функционала продукта, а не поисками решения, как подключаться к внешним сервисам. Это, помимо денег, сэкономит еще и массу времени, наиболее ценного ресурса для бизнеса.

Интеграция API

Процесс интеграции API представляет собой объединение нескольких независимых ресурсов в один для обмена информацией. Направление передачи сведений зависит от задач.

Типовой пример реализации интеграции API:
  1. Интернет-магазин принимает заказ, информирует клиента о присвоенном номере.
  2. На складе резервируется товар с привязкой к конкретной заявке.
  3. Платежная система принимает платеж с карты, привязанной к аккаунту.
  4. Курьерская служба получает адрес для организации доставки.
  5. Клиент видит текущую ситуацию в личном кабинете.

Все перечисленное происходит в автоматическом режиме. Если какой-то интеграционный модуль «отвалится», система перестанет работать. Например, платеж примут, но доставки не будет.

Как вызвать API и как с ним работать

Обратиться к функции API можно в соответствии с документацией к нему. В общем случае, это отправка определенных данных на указанный разработчиком адрес сервера.

Простейший пример отображения у себя на сайте карты Яндекс:
1.Внесите в заголовок страницы
<head>
<script src="https://api-maps.yandex.ru/2.1/?apikey=ваш API-ключ&lang=ru_RU" type="text/javascript">
</script>
</head>
Отметим, что API-ключ нужно оформить отдельно в техподдержке Яндекса.

2.Следом создайте контейнер, где будет размещена карта:
<body>
<div id="map" style="width: 600px; height: 400px"></div>
</body>

3.Теперь добавьте код карты
<script type="text/javascript">
// Функция ymaps.ready() будет вызвана, когда
// загрузятся все компоненты API, а также когда будет готово DOM-дерево.
ymaps.ready(init);
function init(){
// Создание карты.
var myMap = new ymaps.Map("map", {
// Координаты центра карты.
// Порядок по умолчанию: «широта, долгота».
// Чтобы не определять координаты центра карты вручную,
// воспользуйтесь инструментом Определение координат.
center: [55.76, 37.64],
// Уровень масштабирования. Допустимые значения:
// от 0 (весь мир) до 19.
zoom: 7
});
}
</script>

Выбор координат зависит от задачи. Можно, например, внести адрес своего магазина. Тогда при нажатии на карту система позволит построить маршрут от текущей точки, где находится клиент.

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

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

Существуют более сложные варианты:
  1. Google Календарь. В него могут попадать различные события, как вручную внесенные, так и переданные, например, от службы доставки, Почты России и т.п.
  2. Погодные приложения. Сервис напрямую взаимодействует с метеослужбой и считывает с их сервера актуальные данные о текущей погоде, ближайшем прогнозе.
  3. Сервисы заказа авиабилетов. Речь идет об агрегаторах, позволяющих всего «одним кликом» заказать билет на нужное время, в нужный пункт (с автовыбором компании).
  4. Кнопки авторизации. Сейчас практически на любом ресурсе можно авторизоваться за счет указания аккаунта во ВКонтакте, Google, на других сервисах.

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

Почему API так популярны у программистов

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

Есть еще несколько:
  1. Повышает безопасность благодаря проверенному коду.
  2. Совместим с разными системами, будь то банк, соц. сеть или ИМ.
  3. Существенно снижает стоимость разработки.

Последнее справедливо даже для случаев, когда разработчик берет за основу платный API. Все равно его использовать дешевле, чем писать код «с нуля».

Как компании зарабатывают с помощью API

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

Компания Яндекс предоставляет платный доступ к таким технологиям:
  1. Переводчик с машинным обучением.
  2. Система распознавания или синтеза речи.
  3. Платформа облачных вычислений и т.д.

На многих сайтах реализована функция авторизации через аккаунты социальных сетей. Банки и иные финансовые учреждения позволяют автоматически заполнять формы заявлений при доступе к личному кабинету на портале Госуслуги.

Особенности современного API

Изначальный тип REST API является унифицированным инструментом, но он не лишен некоторых недостатков. Так, при помощи формализованной спецификации OpenAPI можно упростить работу с кодом библиотек низкого уровня, в основном, за счет поддержки автоматической генерации API и интеграции с большим количеством сторонних сервисов.
Также можно воспользоваться модификацией интерфейса gRCP. Он легче и проще стандартного формата обмена информацией, есть доступ к специальным библиотекам, ускоряющим собственную разработку систем.