Что такое API
Как интерфейсы упрощают обмен данными.
API (Application Programming Interface) — программный интерфейс, который описывает способы работы с приложением. Крупные компании (включая Telegram, Facebook и Google) часто позволяют сторонним разработчикам пользоваться своими API. Например, вы можете создать бота, настроить автоматическую публикацию на своей странице в соцсетях, или разместить интерактивную карту на сайте. API есть даже у языков и для комплектующих.
Удобное API можно описать четырьмя критериями:
- документация
- валидация данных
- производительность
- безопасность
Эти параметры зависят от выбранных технологических решений и ваших требований. Например, данные какого объема будут передаваться, как именно будут обрабатываться ошибки и возвращаться их коды.
API как интерфейс
API — контракт для конкретного приложения. Он разрешает приложению принимать от разработчиков данные (запрос) в определенном формате, обрабатывать их с помощью бизнес-логики, а потом отдавать обратно. Это происходит по одинаковой для всех схеме, что упрощает работу с приложением. Вам не нужно вникать в реализацию фич — только работать с предоставленными методами.
У каждого API есть подробная документация, которая описывает, как работать с такими запросами. За каждый тип действия отвечает отдельный — например, существуют запросы для чтения и обновления данных. Отправляя запрос, вы знаете, какие данные получите.
Как применять API
С помощью API можно работать с источниками данных, графикой, видео и управлять состоянием объектов. Вы можете использовать чужое API для расширения функций своего приложения. Например, вы разрабатываете приложение для прогнозирования курса биткоина, и вам нужно собирать данные с трейдинговых площадок. Вы можете написать для этого парсер. Но он будет работать медленно, а его создание займет много времени. Гораздо проще использовать API самих площадок.
Разные API могут взаимодействовать между собой. Например, можно написать прослойку, которая принимает запросы от одного API и передает их в другой, причем формат передаваемых и принимаемых данных может не совпадать.
Несколько API и библиотек могут объединиться в один SDK (Software Developer Kit). В таком случае вы получите полный набор инструментов для создания приложения, например, Facebook SDK.
Типы API
API могут разрабатываться для комплектующих, операционных систем, веб-сервисов и приложений. Они могут быть публичными и приватными, а доступ к ним может продаваться по подписке. Разработчики чаще всего сталкиваются с WEB API. То, в каком формате и по какому протоколу мы передаем данные, и то, как мы ожидаем получить их обратно, разделяет WEB API на несколько типов:
-
REST (Representational State Transfer) — архитектурный подход проектирования, при котором сообщения передаются по HTTP-протоколу. Более подробно о том, как работает HTTP, — тут.
При работе с REST данные кэшируются, а сервер не хранит состояние клиента (в запросах передаются все данные, необходимые для обработки). Плюс такого подхода в том, что можно упаковать любые данные. Он отлично подходит для CRUD-приложений с клиент-серверной архитектурой. Вы можете передавать JSON, XML и даже обычный текст. Минус REST в том, что у него нет жестких правил проектирования, только общие принципы. Например, команды часто сами решают, какой код возвращать в запросах, если это не стандартные 200 или 404.
-
SOAP (Simple Object Access Protocol) — это не архитектурный подход, а спецификация протокола. В отличие от предыдущих типов, может работать не только с HTTP, но и c SMTP и FTP. В итоге вы получаете API, гибкое к выбору протокола передачи данных. SOAP считается жестко стандартизированным и отлично справляется с распределенными транзакциями, что делает подход предпочтительным для финансовых организаций. Сами данные во время запросов передаются только в виде XML. JSON и другие форматы не поддерживаются. Поэтому передаваемые сообщения получаются «объемными».
Слева — данные в формате JSON, справа — эти же данные, но в XML
Источник: edialliance.com
Эти типы API не являются конкурентами. У одного WEB-сервиса может быть несколько API, которые реализуют разные подходы.
Чтобы лучше понять, как устроен API, рекомендуем книгу Continuous API management от O'Reilly. Она рассказывает, как разрабатывать и управлять API и какую ценность для бизнеса оно несет.