Что такое API
API
является аббревиатурой от Application Programming Interface, что в переводе означает программный интерфейс приложения. API
представляет набор правил и функций, позволяющих двум разным приложениям взаимодействовать друг с другом. Подобные интерфейсы облегчают интеграцию приложений, давая возможность разработчикам создавать мощные диджитал решения.
API
выступает посредником между приложениями, отправляя запросы и ответы. Например, регистрация в приложении через существующий аккаунт в соцсетях пользователя происходит через API
, который разработчики интегрировали в приложение.
Для отправки и получения тех самых запросов (функций) и в зависимости от назначения API следует разным протоколам и стандартам. Различают следующие типы протоколов и архитектур:
XML-RPC
позволяет выполнять обмен функциями между двумя или более сетями.XML-RPC
используетXML
для описания запросов и ответов, и при помощи протоколовHTTP
передает информацию от клиента к серверуJSON-RPC
это облегченныйRPC
, похожий наXML
. Протокол закодирован вJSON
, позволяет получать вызовы на сервер с возможностью асинхронных ответовSOAP
simple object access protocol, протокол для обмена структурированной информацией при реализации веб-сервисов в компьютерных сетях.SOAP
используетXML
для аутентификации, авторизации и взаимодействия процессов в операционных системах и позволяет клиентам вызывать веб-сервисы и получать ответы независимо от языка и платформыREST API
репрезентативная передача состояния, это архитектурный стиль который осуществляет реализацию клиента и сервера независимо друг от друга. Сервисы вREST API
взаимодействуют по протоколу HTTP
Почему API называют интерфейсом
Интерфейс, это граница между двумя функциональными системами, на которой происходит их взаимодействие и обмен информацией. При этом процессы внутри каждой из систем скрыты друг от друга.
С помощью интерфейса можно использовать возможности разных систем, не задумываясь о том, как они обрабатывают наши запросы и что у них под капотом. Например, чтобы позвонить, не обязательно знать, как смартфон обрабатывает нажатия на тачскрин. Важно лишь, что в гаджете есть кнопка, которая всегда возвращает одинаковый результат в ответ на определённые действия.
Точно так же с помощью вызовов API
можно выполнить определённые функции программы, не зная, как она работает. Поэтому API
и называют интерфейсом.
Как API помогает писать надёжные программы
Обычно мы не знаем, как программы устроены внутри. Впрочем, нам иногда и не важно, как они работают. Поэтому программную реализацию называют чёрным ящиком и прячут за несколькими уровнями абстракций, чтобы пользователям было удобно ими пользоваться.
Уровни абстракции сильно ускоряют процесс разработки, потому что программист может использовать готовые функции API
в других приложениях. Это обычная практика. Например, большинство операционных систем предоставляют свои API
другим программам, чтобы они получили возможность:
- работать с файловой системой
- отрисовывать графику
- хранить данные
- использовать сетевые возможности
- воспроизводить аудио и так далее
Windows
, Linux
, macOS
сами определяют какие функции нужно вызвать и какие параметры передать, чтобы выполнить те или иные действия. Всё это описывается в документации к API
, с которым работают разработчики других программ.
Почему API так популярны у программистов
Программные интерфейсы сервисов и библиотек позволяют разработчикам не изобретать велосипеды. Зачем писать код, когда можно воспользоваться готовым. Вот какие возможности даёт API
:
- Предоставляет доступ к готовым инструментам. Например, к функциям библиотеки для машинного обучения TensorFlow — они помогают быстро создать нейросеть, не тратя время на разработку инструментов с нуля
- Повышает безопасность. API позволяет вынести в отдельное приложение функциональность, которая должна быть защищена. Так снижается вероятность некорректного использования этих функций другими программами
- Связывает разные системы. Если вам нужно подключить к сайту платёжную систему или авторизацию через соцсети, без API не обойтись
- Снижает стоимость разработки. Часто бывает, что дешевле воспользоваться платным API, чем создавать функциональность с нуля
Стороннее API
обычно безопасное, потому что над ним работает коммерческая организация или целое сообщество разработчиков. И конечно, с его помощью даже работа над сложными проектами становится проще и приятнее.
Как компании зарабатывают с помощью API
Компании которые разрабатывают сложные приложения, часто предоставляют клиентам доступ к API
своих продуктов. Например, создатели видеоредактора могут брать дополнительную плату за рендеринг видео на своих серверах. По API
они принимают от клиентов все файлы и инструкции, возвращают готовый ролик. Например, «Яндекс» предоставляет платные API
таких технологий:
- Переводчика с машинным обучением
- Системы распознавания и синтеза речи
- Платформы облачных вычислений и так далее
Популярные социальные сети тоже предоставляют доступ к своим API
. Через них можно, создать игру для «ВКонтакта» или добавить на сайт авторизацию через Google. При этом компании обычно не раскрывают принципы реализации своих интерфейсов, поэтому для программистов они остаются чёрными ящиками.