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

Что такое API
API (Application Programming Interface, или программный интерфейс приложения) — набор правил и способов, с помощью которых разные сервисы обмениваются друг с другом данными. API есть практически во всех устройствах, сайтах и приложениях, которые мы используем — настолько это распространенный и удобный инструмент.
Чтобы было проще представить работу API, рассмотрим в качестве примера ресторан. Вы сели за столик и хотите сделать заказ. К вам подходит официант, вы изучаете меню и говорите, что хотите пасту с креветками. Вы не готовите пасту сами: официант записывает заказ, идет на кухню и передает его поварам.
В контексте работы веб-сервисов API — это меню, в котором перечислены блюда (функции), которые можно заказать (отправить запрос). Официант — сервер, который принимает запрос, проверяет его корректность (есть ли блюдо в меню) и передает на обработку. Таким образом, API не просто помогает обмениваться данными, а определяет, какие запросы допустимы и какие ответы получит клиент.


Где встречается API:
При написании кода. Здесь API — правила, по которым разные функции общаются между собой. Можно представить, что каждая функция — это отдельный человек. API говорит: «Если хочешь вызвать эту функцию, передай ей два числа, и она вернет их сумму». Без таких четких правил функции не смогут работать вместе.
В операционных системах (ОС) API нужны, чтобы работать с железом и системными функциями. Когда программа хочет создать файл или вывести изображение на экран, она не лезет во внутреннее устройство ОС, а использует API. Это как стандартные команды, которые операционная система понимает и выполняет. Разработчикам приложений нужно знать API ОС, для которых они ведут разработку.
В веб-сервисах. Им API нужен, чтобы взаимодействовать друг с другом. Например, сервис прогноза погоды через API получает данные от метеорологических служб вместо того, чтобы самостоятельно измерять давление, температуру и ультрафиолетовый индекс.
Почему API называют пользовательским интерфейсом
Интерфейс — это средства, благодаря которым возможно взаимодействие между программами, системами, пользователем и устройством. Представьте себе лифт: чтобы поехать на седьмой этаж, вы нажмете кнопку с цифрой 7. Эта кнопка — интерфейс, который помогает пользоваться лифтом. Вы можете не знать, как устроен лифт и что конкретно заставит его подняться, но вы все равно окажетесь на седьмом этаже.
API для веб-сервисов — такой же интерфейс, как для нас кнопка лифта. Сайт ресторана не знает, как работают Яндекс Карты, как обновляют данные о местоположении объектов, работе заведений и пробках на МКАД. Но сайт ресторана может обратиться к Яндекс Картам, чтобы интегрироваться с их API. Таким образом ресторан переиспользует функционал, который уже кем-то реализован, без необходимости работать над ним самостоятельно. Карты появятся на сайте ресторана, чтобы гости видели расположение заведения, отзывы о нем, время работы и маршрут до заведения.
Как работает API
В веб-сервисах API действует по схеме запрос-ответ: первый сервис отправляет HTTP-запрос второму и получает ответ. Пошагово рассказываем, как работает API:
1. Клиент — приложение, браузер или устройство — через API отправляет запрос к конкретному сервису. Например, если клиент хочет, чтобы у него на сайте отражался прогноз погоды в Москве, он направит через API запрос к сайту с погодой.
2. Сервис проверяет права доступа. Для доступа к API зачастую нужны логин, пароль или токен.
3. Сервис получает запрос — набор методов и параметров, которые передал ему клиент. По аналогии с рестораном вызванным методом может быть «сделать заказ», а параметрами — список блюд и порядок их подачи. Далее сервис самостоятельно обрабатывает полученные по API методы и параметры, то есть «готовит блюдо», исходя из логики своего кода. Клиент не знает, что происходит на «кухне», но все равно получит свой заказ.
4. Сервис формирует ответ — приготавливает «блюдо» — и передает его клиенту по сети обычно в формате JSON или XML. Например, для запроса о погоде в Москве полученные данные в формате JSON могут выглядеть так:
5. После того, как приложение, то есть клиент, получило ответ от API, оно преобразует эти данные, чтобы те удобно отображались. В случае с запросом о погоде в Москве приложение покажет, что в конкретный день в городе +18 градусов и солнечно.
Пользователь не замечает этого взаимодействия сервисов через API, он видит только конечный результат. В нашем примере — отображение погоды на сайте, который запросил этот прогноз.
Основные функции API
То, что можно сделать с помощью API, зависит от приложения, к которому идет запрос. API помогает делать очень много чего, перечислим некоторые распространенные сценарии:
получение от сервисов информации о прогнозе погоды, курсах валют, расписании самолетов;
перевод текста;
распознавание изображений или речи;
авторизация через сторонние сервисы: соцсети или электронную почту;
проведение платежа через банковскую систему, использование сервиса для чаевых в ресторанах;
сбор статистики о посещениях сайта, например, с помощью Google Analytics API;
координация кафе со службой доставки, чтобы не нанимать своих курьеров, а работать в партнерстве с другими;
размещение информации на агрегаторах: через API можно собирать сведения об отелях, сдаваемом жилье, авиабилетах.
Преимущества API
Ускорение разработки. С помощью API можно подключить готовые функции для приложений, а не делать с нуля свои. Например, использовать API для обработки платежей или подключить через него форму авторизации Яндекс или Google и не тратить время на самостоятельную разработку платежной системы и формы авторизации.
Экономия денег. Использование API экономит бюджет на разработку, так как заимствуется готовый функционал других сервисов.
Безопасность. В крупных сервисах команды разработчиков не только создают API, но и тестируют его, защищают от уязвимостей. Использование API делает приложение безопаснее, так как достаточно использовать те, надежность которых уже проверена.
Универсальность. API — переходник, с помощью которого можно интегрировать функции одного сервиса в другой в независимости от языка программирования, устройства или операционной системы.

Какие бывают API
API бывают разными, как инструменты в мастерской. Одни подходят для быстрых задач, другие — для сложных систем с повышенной безопасностью, работы в вебе или с операционными системами. Разберем основные виды.
API при написании кода нужны, чтобы функции правильно взаимодействовали друг с другом. Каждая функция выступает в роли «приложения», в то время как API — набор инструкций, чтобы эти функции правильно вызывать.
API в операционных системах помогают программам получать информацию от ОС или менять ее настройки.
API в веб-сервисах (Web API) используются, чтобы два сервиса могли общаться между собой. Именно с помощью Web API одно приложение может пользоваться функциями другого так, чтобы разработчикам не пришлось делать собственное решение с нуля. У Web API есть несколько архитектурных стилей:
REST API — самый популярный вариант для веб-сервисов. Работает через простые HTTP-запросы, передает данные в формате JSON. Подходит для большинства задач: интеграций API в соцсети, интернет-магазины, мобильные приложения.
SOAP API — строгий и безопасный протокол, использует язык разметки XML. Его часто используют банки и корпорации, потому что SOAP предусматривает шифрование и цифровые подписи. Из недостатков — он медленнее REST и сложнее в настройке.
GraphQL API возвращает только ту информацию, которую запросили. К тому же за один запрос в GraphQL можно получить столько же информации, сколько в REST за два или три.
RPC — подход, при котором программа вызывает функции на другом сервере так, будто они работают прямо в ее коде. gRPC от Google использует бинарный формат и HTTP/2 для скорости, идеален для микросервисов и стриминга, но требует сложной настройки. tRPC позволяет удобно вызывать методы бэкенда прямо из фронтенда.
Еще API делятся по типам доступа на:
Открытые. API такого сервиса можно использовать свободно без каких-либо ограничений, разрешений или лицензий.
Партнерские. Такие API распространяются по ключу, который выдается после заключения договора или соглашения.
Внутренние. Распространяются внутри организации и используются, чтобы оптимизировать рабочие процессы. Например, чтобы облегчить взаимодействие между отделами, быстрее обмениваться информацией.
Как пользоваться API
Разберем три ключевых этапа, из которых состоит работа с API: получение доступа, отправка запросов и интеграция в приложение.
1. Получить доступ к API. Для этого нужно зайти в документацию API на сайте разработчика. Там указаны все доступные методы, параметры запросов и форматы ответов. Например, у Cloud.ru есть отдельный раздел документации, где указаны возможности API. Большинство API требуют ключ доступа (API key) или токен авторизации, который нужно получить перед началом работы.

2. Вызвать API напрямую или косвенно. Прямой вызов API подразумевает, что вы самостоятельно отправляете HTTP-запросы к API с использованием:
командной строки — cURL;
специальных программ, например, Postman;
языков программирования и библиотек: Requests в Python или Axios в JavaScript.
В запросе нужно указать:
адрес API;
метод: GET, POST, PUT, DELETE, PATCH;
заголовки, или headers;
тело запроса;
данные для авторизации.
Ответ обычно приходит в формате JSON или XML, который нужно распарсить для дальнейшей работы.

Косвенный вызов API — способ, который упрощает разработку, так как вместо прямых HTTP-запросов используются специальные клиентские библиотеки или SDK (Software Development Kit).
3. Интегрировать API в приложение. Для этого нужно:.
Выбрать язык программирования с библиотекой для работы с HTTP-запросами. Возможные варианты: Python, JavaScript, Java. В Python используется библиотека Requests, в JavaScript — Axios, в Java — Apache HttpClient.
Написать код для вызова API: указать URL, метод, заголовки и данные, создать ответ, который обычно приходит в формате JSON или XML.
Обработать ошибки. Чтобы приложение работало стабильно, нужно предусмотреть ситуации, когда сервер может быть недоступен, запросы превысят лимит. Для этого важно добавить проверки и обработку таких случаев, например, установить таймаут, чтобы не ждать ответа сервера бесконечно.
Помимо HTTP-библиотек можно использовать SDK, если он доступен для выбранного API. SDK упрощает интеграцию, так как разработчик вызывает готовые методы библиотеки, которая сама формирует запросы, преобразует данные и обрабатывает ошибки.
С помощью API можно интегрироваться с облачными сервисами, например, облачными хранилищами, вычислительными платформами, базами данных или аналитическими сервисами. API связывает ваш продукт и облачную инфраструктуру. Например, Сloud.ru через API предоставляет:
Cloud DNS — сервис для управления доменными зонами;
Secret Manager — инструмент для безопасного хранения конфиденциальной информации;
Key Manager — сервис для управления криптографическими ключами, шифрования и расшифровки данных.
Коротко об API
API — набор правил, по которым сервисы взаимодействуют друг с другом. API работает как посредник, позволяя приложениям обмениваться данными и функциями. Разработчику не нужно разбираться во внутренней логике работы сервиса, функции которого будут использоваться с помощью API.
Задача API — упростить интеграцию между сервисами. Например, когда сайт показывает погоду, он не собирает данные самостоятельно, а получает их через API метеорологического сервиса. То же самое с платежами, картами или авторизацией через соцсети.
API бывают разных типов: для языков программирования, операционных систем, веб-сервисов.
API ускоряет разработку и экономит деньги: не нужно с нуля разрабатывать собственные решения, есть возможность сразу взять готовые.