API – интерфейс, без которого было бы невозможно взаимодействие разных сервисов или программ. Он служит своеобразным посредником при передаче информации и может быть как у веб-сервисов и ОС, так и у языков программирования, чтобы они могли взаимодействовать между собой. Расскажем подробнее, что такое API сайта или приложения, какие разновидности существуют, где используются.
Что такое API? Аббревиатура расшифровывается, как Application Programming Interface, что переводится на русский как программный интерфейс приложения. Технически же этот инструмент – набор методик, позволяющих разным компонентам программ взаимодействовать между собой.
Для обеспечения этого взаимодействия интерфейс API использует:
Упрощенный пример API – оплата товара в интернет-магазине. Когда покупатель оформляет заказ и подтверждает его, появляется форма для оплаты покупок, куда нужно вводить реквизиты карты. После ввода данных интернет-магазин использует API банка-эмитента карты, которому отправляет запрос на снятие определённой суммы со счёта. То есть, взаимодействие интернет-магазина и банковской системы происходит через API.
Приложение API имеет несколько разновидностей, которые отличаются по способу работы исходя из того, для чего и когда их создали.
Самый распространённый вариант, высокопроизводительный, масштабируемый и надёжный. Его используют во всех ситуациях, когда пользователю, посетившему приложение или сайт, предоставляются данные с сервера. Для корректного отображения эти данные переводятся в один из форматов:
Набор методов следующий:
Основная особенность этой системы API – передача данных с веб-службы без сохранения состояния. В процессе используется клиентский запрос в виде URL-адреса (например, когда вы вводите запрос в строке поиска в браузере).
Это расшифровывается как Simple Object Access Protocol, что означает API по простому протоколу. В то же время он сложнее предыдущего варианта. Работает только с данными, написанными на XML, в противном случае выдаёт ошибку. В основном используется с протоколами HTTP, но поддерживает также и SMTP, FTP, HTTPS. Основные структурные элементы SOAP-сообщения – Envelope, Header, Body и Fault.
Он объединяет несколько различных стандартов, например, WS-Security (использование идентификаторов – токенов), WS-Addressing (метаданные о маршрутной информации) и др.
Что значит API RPC? Это такой же метод взаимодействия, но при вызове функции на удалённом сервере они как будто становятся локальными. Состоит из протокола обмена и сериализатора данных.
HTTP здесь не служит частью API-сервиса, а выступает способом доставки. В RPC меньше кодов ответов и заголовков, а выполнение различных действий и обработка ошибок «встроены» в тело запроса и ответа.
Когда разобрались с основами API – что это такое простыми словами, где применяется и в каких разновидностях представлено, приведём несколько примеров.
В приложениях-календарях для разных операционных систем синхронизация данных происходит через такие сервисы, как Google Календарь или Apple iCal для iOS и Android соответственно. Эта синхронизация и происходит с помощью функции API – программист получает возможность синхронизировать календари со сторонними приложениями напрямую.
Интеграция позволяет:
Без API в данном случае установленный календарь работает автономно, информация со сторонних сервисов в него добавляться не будет.
Ещё один пример использования функционала API – приложение для просмотра прогноза погоды. Они могут быть сторонними, установленными из магазинов приложений или встроенными в ОС. Но вне зависимости от этого все они получают данные со стороннего источника.
Есть сервисы, которые берут данные напрямую с сайтов метеостанций, но если речь о мобильных приложениях, то эти данные разработчики покупают и «заливают» через API. В процессе используются методы, которые дают возможность отправлять запросы о погоде в разных городах, эти запросы поступают на сервера метеостанции через приложение, в него же приходят «ответы», которые и видит пользователь.
По такому же принципу работают сайты, приложения и агрегаторы для заказа авиабилетов. В них программа API используется для связи с серверами авиакомпаний. Например, в агрегаторах принцип такой – сервис собирает информацию в нескольких авиакомпаниях, объединяет данные по каждому направлению и показывает их списком в формате единого окна.
В этом случае все сведения обновляются в режиме реального времени и показывают пользователю изменение цены на билеты, актуальные направления и др.
Простой пример кнопки авторизации – вход в личный кабинет на сайт через соцсети, например, профиль в ВК. В этом случае пользователь разрешает системе получить информацию о нём со стороннего ресурса, не указывая её вручную. Также с помощью кнопок соцсети можно регистрироваться на разных площадках.
Этот процесс также происходит с помощью интерфейса прикладного программирования. Системе, где вы регистрируетесь или авторизуетесь, нужно получить данные о вас – ФИО, номер телефона, почту и др. Вы нажимаете кнопку соцсети, система запрашивает разрешение на получение информации, которое вы подтверждаете. В соцсети уходит запрос на предоставление данных, они автоматически подтягиваются в форму, и их не нужно вводить вручную. При этом существует набор функций для защиты данных, обеспечивается упрощенный способ авторизации.
Принцип здесь похож на работу погодных приложений. Картографические данные предлагают крупные компании, например, Яндекс (Яндекс.Карты). Его API разработчики могут встраивать в свои продукты, после чего, например, когда вы ищете ближайшее отделение банка на его сайте или в приложении, открывается карта, на которой отмечены ваше месторасположение и ближайшие офисы.
Но использование зависит от операционной системы. Например, в iOS-устройствах чаще используют Apple Maps, поскольку картографические данные предоставляет та же компания, что и ОС. Для Android чаще подключают карты от Google.
Перед тем как пользоваться API, разработчики выбирают подходящий вариант и решают, какое API будет идеальным в данном случае.
Универсального API, которое бы подходило всегда и везде, не существует. У каждой платформы есть свои особенности, из-за этого нельзя использовать единую программу для всех проектов.
Но эту проблему решают следующим образом – пишут некий модуль-болванку, к которому добавляют код «по минимуму» с учётом особенностей конкретного проекта. Это значительно сокращает время разработчика.
Под быстродействием понимают время, затраченное на достижение какого-либо результата. Например, когда пользователь регистрируется в соцсети, запрос о получении сведений о нём передаётся на сервер. При этом может потребоваться замена языка – они нередко отличаются на серверах и других платформах. Другой пример – API Google Translate обеспечивает перевод текста на Python.
При этом используют промежуточный язык, чем обеспечивают возможность передачи данных. Обратная отправка происходит по той же схеме – сервер передаёт данные на одном языке, а сайт «принимает» их на другом.
Это занимает определённое время. Чем меньше его тратится, тем более быстрым считается API.
Каждая ссылка, метод или функция должны быть понятны всем, кто с ними взаимодействует. Это позволит сократить количество ошибок, а также уменьшить время на обработку запросов.
«Правильное» API позволит разработчикам выполнять минимально необходимый объем операций, при этом сохранять точность перевода данных. Полнота API определяется тем, насколько полными будут ответы на выполненные действия.
В первую очередь необходимо разобраться в нюансах API – что это в программировании, как это работает. В помощь разработчикам приходит официальная документация, но она существует отдельно для каждого программного интерфейса – универсальных инструкций нет.
Существуют прямые и непрямые методы вызова API. Во втором случае используется пользовательский веб-интерфейс. Прямые способы могут быть разными:
То есть, вызов напрямую позволяет системе использовать внутренние функции или методы сторонних программ, например, когда приложение будет отправлять запрос на получение информации из других приложений. Причём в этом случае можно использовать ручной вызов без задействования графического интерфейса.
Упрощённо для вызова API сайта данные на сервер отправляются в виде URL-запроса. Причём если код закрытый, дополнительно потребуется отдельное подключение API-ключа.
Основная задача API – быть промежуточным слоем между двумя сайтами или приложениями и позволить им обмениваться информацией. API может быть публичным, например, такие используют популярные платформы наподобие YouTube. Бывают частными – их разрабатывают для определённых пользователей или аудитории, например, для работы внутри предприятия. Чтобы начать работу с ним, нужно получить доступ – здесь будет закрытый код.
Для разработчиков программный интерфейс необходим, чтобы:
Например, когда не существовало Windows, разработчикам приходилось создавать все окна на экране ПК самостоятельно и писать огромный объём кода. Когда появился API Windows, эта же работа стала занимать несколько минут.
API необходим и бизнесу. Без него было бы невозможно проводить транзакции, например, принимать оплату с банковских карт, развивать приложения, внедрять инновационные решения и обеспечить необходимую безопасность некоторых процессов.
Основные особенности:
Кроме того, подход к созданию API становится более серьезным – проводятся тестирования, контроль версий после выхода продукта.