API – это набор способов и правил, посредством которых компьютерные программы взаимодействуют друг с другом. Они могут включать готовые классы, процедуры, функции, структуры, константы – эта информация предоставляется приложением или операционной системой и используется при взаимодействии с внешними программами. Аббревиатура API расшифровывается как «application programming interface» – дословно «интерфейс прикладного программирования» или «программный интерфейс приложения». Почему именно интерфейс? Им называется своеобразная граница, где происходит обмен информацией между функциональными системами, при этом их внутренние процессы скрыты друг от друга.
API системы — это интерфейс программирования приложений, который позволяет взаимодействовать с определенной системой или сервисом. Обычно API системы определяет набор правил и соглашений для обмена данными между приложениями, которые используют эту систему.
API функции — это набор программных интерфейсов, предназначенных для выполнения конкретных функций внутри определенной системы. API функции могут быть доступны для использования как внутри системы, так и с помощью внешних приложений, которые могут использовать эти функции для своих целей. Хорошо спроектированные API функции обычно имеют четкий набор параметров и правил использования, что облегчает их интеграцию в другие приложения.
Работу API можно сравнить с использованием смартфона. Пользователь не обязан знать, что у него «под капотом», как обрабатывается информация внутри гаджета. Он приходит к цели простым нажатием на иконку в интерфейсе. Программный интерфейс позволяет разработчику подключиться к другим системам для воспроизведения видео или аудио, хранения данных, отрисовки графики и т. п. При этом ему не нужно писать собственный код и разбираться в работе ОС.
![Интерфейс прикладного программирования interface-2439437](https://www.sape.ru/glossary/wp-content/uploads/2021/11/interface-2439437.jpg)
API и программисты
Программисты используют API различных продуктов при создании приложений, которые будут взаимодействовать между собой. Данный механизм позволяет объединять работу различных приложений в одну систему – это удобно для исполнителей.
Рассмотрим подробнее причины интереса программистов к API:
- Возможность получить доступ к инструментарию для работы с ПО. К примеру, с помощью OpenAl можно работать со звуковыми библиотеками в приложениях. Таким образом, разработчикам уже не приходится отдельно писать свое звуковое ПО.
- Возможность связывать системы. API позволяет авторизоваться на сайте через аккаунт Facebook, Google или другого стороннего сервиса. По этому принципу работают платежные системы при соединении с банковскими аккаунтами.
- Обеспечение безопасности данных. API выделяет данные, нуждающиеся в защите, поэтому сторонние программы не могут ими воспользоваться без специального разрешения.
- Возможность снижения стоимости программного продукта. Создавать программное обеспечение с нуля – дорого, проще и выгоднее пользоваться существующим API.
API – набор функций
Элементы механизма API в процессе работы образуют иерархию со множеством уровней. У подчиненных компонентов – похожая структура. Стандартная сетевая модель OSI имеет не менее 7 внутренних уровней: от физического уровня трансляции бит до приложений (например, протоколы HTTP и IMAP). Получается, что API верхнего уровня использует функциональность нижнего.
Важные компоненты организации информации при описании API – это библиотеки функций и классов. В них включены описания сигнатур и семантики. Таким образом, API функции считаются частью механизма интерфейса. В таком случае сигнатура становится частью общего объявления функции. Она помогает идентифицировать элемент.
Специалисты придерживаются мнения, что нужно различать сигнатуры вызова и реализации каждой конкретной функции при описании языков. При определении сигнатуры вызова учитывается следующее: область видимости, имя и последовательность фактических типов аргументов. Благодаря этим компонентам компилятор может опознать функцию в языке C++. Если она является методом определенного класса, то ее сигнатура будет включена в имя этого класса.
С помощью семантики функции программист видит описание ее работы и выполняемых действий. Как правило, в ней есть результат вычисления, а также параметры, которые его определяют. Результат выполнения может включать зависимости не только от аргументов, но и от фактического состояния.
Отдельные компании реализуют API как самодостаточный программный продукт. К примеру, на сайт магазина требуется встроить интерактивные карты, которые помогут покупателю найти ближайший от него пункт выдачи заказов. Зачем разрабатывать собственный картографический сервис, если можно использовать API Яндекс.Карт? В этом случае сервис сайта будет отправлять запрос к сервису Яндекса, а ответ отображать в браузере посетителя.
![Работа программиста с API pc-8358603](https://www.sape.ru/glossary/wp-content/uploads/2021/11/pc-8358603.jpg)
Типы API
Классификация программных интерфейсов API по типу доступа:
- Внутренние. Находятся в доступе у сотрудников организации. Задача таких API – решение внутренних задач компании, например по снижению расходов и отладке процессов.
- Партнерские. Они разрабатываются для клиентов и партнеров компании. Обычно используются для разработки веб-продуктов.
- Публичные. Их задача – привлечение внимания, продвижение продукта и компании. Публичные API создаются для продажи, разработки новых приложений и сервисов.
Классификация WEB API, используемых в создании HTTP-служб:
- RPC (Remote Procedure Call). Были актуальны, когда системы были связаны в локальных сетях. Вызов удаленных систем можно сравнить с вызовом функций внутри программы. В качестве примеров таких систем можно назвать CORBA и DCOM.
- SOAP (Simple Object Access Protocol). Для обмена сообщениями в распределительной вычислительной среде используется данный протокол. SOAP осуществляет не только удаленный вызов процедур, но и отправку и получение сообщений формата XML, а также работает с протоколами прикладного уровня.
- REST (Representational State Transfer). Это архитектура программного обеспечения для веб-служб. С ее помощью возможна работа с любыми форматами (сайт, flash-программа, приложение и др.). Данные передаются без дополнительных слоев, благодаря чему REST задействует меньше ресурсов. Это означает, что на каждую передачу данных требуется меньше запросов. Работа систем на архитектуре REST пока не ограничена единым стандартом, но большинство RESTful-реализаций применяют стандарты HTTP, XML, URL, JSON.
Наиболее популярные категории API
Ниже представлены основные типы интерфейсов, которыми чаще всего пользуются разработчики.
Работа с документами. Примером такого API может служить Document Object Model (DOM). Он позволяет экспериментировать с видом страниц.
Работа с графическими данными, аудио, видео. Если рассматривать Canvas и WebGl, то с их помощью можно осуществлять визуализацию двух- и трехмерной графики. Использование WEB Audio API дает возможность прямо в браузере создавать звуки.
Принятие данных с сервера.Посредством API на сайт можно встроить различные приложения: с конвертером валют, прогнозом погоды, картами.
Считывание данных с устройств. Необходимо для работы над отдельными приложениями. К примеру, для создания собственного навигатора понадобится API, способный считывать местоположение.
Хранение данных у пользователя. Есть такие программные интерфейсы, предоставляющие механизмы для хранения информации на стороне клиента. Они являются альтернативой файлам cookies и имеют более вместительное хранилище. Пример – Web Storage API.
Сегодня API можно назвать полноценным товаром. А покупают его разработчики программного обеспечения. Так как хороший продукт должен быть актуальным, то и API постоянно дорабатывается, становится более его удобным и доступным. Для него регулярно выпускаются обновления и решаются вопросы поддержки. Высокий спрос определяет и качество такого продукта – оно всегда должно быть на уровне. Для привлечения большого количества пользователей, разработчики постоянно ищут новые идеи, устраняют ошибки, обеспечивают надежную и безопасную связь между приложениями. Хранение данных у пользователя.