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