Что такое API

Что такое 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 и какую ценность для бизнеса оно несет.

Ещё статьи
Как упростить разработку.
Data science, web development, gamedev и не только.