API: Простое объяснение и аналогия с рестораном

API (Application Programming Interface), или Апи (с ударением на А), — это описание способов взаимодействия между программами, механизм передачи данных друг другу.

Аналогия из реальной жизни

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

API в компьютерных системах

Рассмотрим платформу онлайн-обучения Merion Academy. Допустим, её API содержит функцию возврата списка курсов по Linux со скидкой 50%. Браузер отправляет запрос к API, получает данные и отображает их на странице. Важно: API не всемогущ. Он предоставляет только функции, реализованные разработчиком. Например, запрос о прогнозе погоды в селе “Добрые Пчёлы” API не обработает. Для каждой новой функции требуется написание кода.

Структура API и примеры использования

API состоит из интерфейса взаимодействия и его описания, объясняющего, как им пользоваться. Взаимодействие может происходить между клиентом и сервером, а также между серверами. Например, сайт по продаже билетов может отображать погоду в Дубае, взаимодействуя через API с погодным сервисом. За каждый запрос сайт платит небольшую сумму — это API-бизнес. API используются не только веб-сервисами (с HTTP-протоколом), но и операционными системами для взаимодействия с системой и «железом». Например, при создании аналога Instagram для работы с камерой используется API операционной системы, что упрощает разработку и делает её кроссплатформенной. API стандартизированы для удобства работы.

Стандарты API

  • SOAP (Service Object Access Protocol): Более ранний стандарт, описывающий правила синтаксиса для сообщений запросов и ответов веб-приложений. Использует XML-сообщения через HTTP или SMTP. XML (Extensible Markup Language) — формат хранения и передачи данных в тегах, читаемый человеком и машиной.
  • REST API: Наиболее популярный архитектурный стиль, не являющийся протоколом. REST делает данные доступными как ресурсы с уникальными URL-адресами. Например, https://www.youtube.com/feed/subscriptions для просмотра подписок на YouTube. RESTful API используют HTTP-запросы (GET для получения информации, POST для отправки данных) и поддерживают различные форматы обмена сообщениями (текст, HTML, YAML, XML, JSON). JSON (JavaScript Object Notation) — простой и универсальный формат «ключ:значение».
  • gRPC (gRPC Remote Procedure Calls): Используется для связи между сервисами, отличается высокой скоростью благодаря HTTP/2 и формату Protocol Buffers (protobuf), потребляющему меньше ресурсов.
  • GraphQL: Язык запросов для API, позволяющий запрашивать необходимые данные из нескольких источников одним запросом.

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

Что будем искать? Например,программа