Включите исполнение JavaScript в браузере, чтобы запустить приложение.
18 сен 2024

Что такое API и как он работает

Все, что нужно знать про API — интерфейс программирования приложений. Как работает, какие виды API используются, как внедрить в свой проект и что это даст.

Аббревиатура API расшифровывается как Application Programming Interface и переводится как «интерфейс программирования приложений». Это программный слой — набор правил, стандартов, по которым приложения или их части общаются друг с другом.

Например, для приема оплаты и координации доставки интернет-магазин настраивает интеграцию своего сайта со сторонним ПО. Тогда за обработку платежей отвечает модуль платежного оператора, а за передачу заказов в курьерскую службу и мониторинг статуса доставки — программы на стороне транспортных компаний.

Как работает API

С точки зрения разработки Application Programming Interface — это хорошо задокументированный набор протоколов и методологий их применения. API задает правила, по которым можно настроить обмен сообщениями между программами без вмешательства в исходный код.

Сервисы могут быть написаны на разных языках программирования, работать на разных операционных системах, иметь несовместимую архитектуру, структуру, принципы обработки запросов. Для организации взаимодействия неважно, как устроены компоненты изнутри. При использовании API разработчик просто настраивает интеграцию, следуя заданным стандартам.

Общая концепция API

Набор API устанавливает:

  • какие запросы можно отправить серверу и какие ответы будут получены;
  • что значит каждый элемент запроса;
  • как обращаться к программе, чтобы получить нужную информацию или выполнить определенную операцию.

Формат входных и выходных данных тоже определен. Обычно в API реализована поддержка JSON, XML, HTML и других форматов.

Для контроля доступа к операциям и информации некоторые API требуют аутентификацию. Процедура проверки может включать использование токенов, вхождения ключей в заголовки запросов и другие способы.

Таким образом, API Application Programming Interface обеспечивает стандартизированные и безопасные способы обмена информацией. Чтобы дать доступ к API сервера, разработчику не нужно менять или делать открытым исходный код. В любой момент можно дописывать серверное ПО, обновлять функциональность, добавлять новые модули — для ресурсов, которые общаются с сервером по API, алгоритмы взаимодействия не изменятся. 

Типы API

Самая распространенная технология называется REST (расшифровка аббревиатуры — Representational State Transfer). Взаимодействие программных компонентов работает на основе стандартных методов HTTP: GET, POST, PUT, DELETE.

Особенность REST — передача состояния представления, что отражено и в названии (слово Representational переводится как «репрезентативный»). Это значит, что сервер не хранит историю обращений с клиентским ПО. Вся информация, необходимая для выполнения нужного действия, должна входить в запрос. Технология универсальна и подходит для широкого применения. Так, в соответствии с архитектурой REST можно создавать мобильные и веб-сервисы, интеграционные платформы, умные устройства и другие IT-решения.

В некоторых сферах популярнее протокол SOAP (расшифровка — Simple Object Access Protocol). Протокол обеспечивает высокий уровень безопасности соединения и лучше подходит для применения в банковской и финансовой сферах. Сообщения нужно писать на XML, набор требований строже, чем в REST.

В мобильных устройствах для организации взаимодействия между компонентами используются iOS и Android API. Протоколы описывают общение модулей на мобильной платформе: например, определяют, как должны работать аудиоплеер на смартфоне или камера на планшете.

Аналогичные принципы действуют внутри веб-клиентов. Через Web Service API происходит пользовательский ввод, отображение анимации, проигрывание видеоконтента и другие события в браузере. 

Принципы работы API

Рассмотрим технологию на более детальном уровне.

API предоставляет эндпойнты — точки входа, куда для выполнения команды нужно отправить запрос. Структура запроса определена правилами взаимодействия с сервером и описана в документации.

Допустим, сайту нужно получить данные с сервера. Для этого он отправляет HTTP-запрос на выполнение операции.

Атрибуты HTTP Request:

  • URL — адрес эндпойнта, к которому выполняется запрос;
  • метод HTTP — определение типа операции, например, запрос на получение информации GET;
  • заголовок — уточнение запроса, тип контента, ключ аутентификации и другие параметры;
  • тело сообщения — дополнительная информация, связанная с запросом.

Сервер получает HTTP Request на точку входа, обрабатывает команду и возвращает результат в HTTP Response.

В обработку запроса на сервере входят:

  • проверка авторизации;
  • выполнение операции — например, извлечение записи из базы данных;
  • формирование ответа.

Формат, в котором веб-клиент получает ответ, известен заранее и зафиксирован в документации. HTTP Response содержит:

  • состояние — например, «404 Not Found», «200 OK», «500 Internal Server Error»;
  • заголовок —  информацию об ответе;
  • тело сообщения — запрошенные данные.

Веб-клиент обрабатывает информацию в соответствии с заданной логикой и продолжает работу автономно от сервера.

Пример использования API

Рассмотрим HTTP-запрос, который возвращает информацию о пользователе. Реализация HTTP Request зависит от клиентского ПО. Мы используем утилиту командной строки cURL (client URL).

Предположим, у нас есть веб-клиент с URL https://example.com. Нужно получить информацию о пользователе по идентификатору. Примем ID пользователя в базе за 123. Атрибут аутентификации включать в запрос не будем.

Как выглядит запрос:

curl -X GET "https://example.com/users/123" -H "Accept: application/json"

В этом сообщении клиент отправляет GET-запрос на эндпойнт /users/123, чтобы получить информацию о пользователе с ID 123. Заголовок Accept указывает на формат данных, которые ожидает получить клиент.

Сервер возвращает JSON с информацией о пользователе.

Как выглядит ответ сервера:

{

"id": 123,

"name": "Admin GitVerse",

"email": "adm@example.com",

"created_at": "2021-01-01T12:00:00Z"

}

В результате клиент получает по API данные о пользователе и делает с ними то, что заложено логикой: подставляет в форму, отображает в личном кабинете, формирует автоматическое сообщение. Реальное ПО также должно уметь обрабатывать ошибки: например, сбой соединения с сервером или отсутствие пользователя с указанным ID.

Практические примеры

Интеграцию по API используют в веб-разработке, игровой индустрии, облачных технологиях, программировании устройств IoT, платежном ПО, инструментах аналитики, на мультимедийных платформах и многих других ресурсах. Разберем два сценария.

Поддержка авторизации через соцсети

Чтобы ограничить доступ к контенту или функциям, в клиентское ПО нужно добавить модуль авторизации. Один из простых способов это сделать — подключить вход по учетной записи в социальных сетях. Тогда пользователь не вводит логин и пароль, а выбирает нужный виджет на странице авторизации. Клиент отправляет запрос в соцсеть и авторизует пользователя по информации из профиля.

Передача геоданных

Чтобы добавить в свой проект функцию определения местоположения, можно настроить интеграцию с системами геолокации. Тогда клиентское ПО получает координаты по API и отображает в интерфейсе — например, проецирует на карту. Сценарий используется в навигаторах, мессенджерах, соцсетях, службах доставки и такси.

Зачем использовать API

Технология позволяет быстро расширять функциональность без сложного программирования. Например, чтобы добавить в свой проект опцию озвучки текста, достаточно настроить интеграцию с внешним голосовым помощником по готовым протоколам. Разработчик внедряет в программу алгоритмы отправки сообщений и обработки ответов, тестирует взаимодействие с сервером и после отладки добавляет новую функцию в клиентскую часть. Это экономит ресурсы и снижает вероятность ошибок при программировании.

Развивать проекты, вести учет версий и оптимизировать разработку помогает GitVerse — российская платформа для работы с программными проектами. AI-ассистент, скрипты сборки и поставки CI/CD, интеграция с облаком и другие встроенные инструменты помогают сделать программирование продуктивнее. Чтобы перенести свои проекты на платформу и попробовать все возможности, зарегистрируйтесь на GitVerse.