REST API простым языком

Главная > Статьи > REST API простым языком

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

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

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

Что такое REST API?

Наиболее распространенной технологией организации программных интерфейсов является REST API. Термин REST (Representational State Transfer) означает передачу состояния представления и описывает способ получать и модифицировать данные удаленных приложений с помощью протокола HTTP. REST достаточно легко внедряется и обеспечивает кросс-платформенную переносимость любых API.

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

Вы можете заметить, что в правом верхнем углу расположено окно с кнопкой проигрывателя YouTube — когда вы нажимаете ее, веб-версия API осуществляет HTTP-запрос и запускает видеоролик по ссылке так, что смотреть его можно, не покидая сайт. То есть REST позволяет программам общаться друг с другом через стандартный протокол, при помощи которого получают почти всю информацию в интернете.

Если говорить о практическим применении технологии REST API в наших программных решений, то она используется в продукте «eKassir Адаптер для Системы быстрых платежей» — в модуле электронной коммерции для бизнеса. Наборы программных интерфейсов реализуют передачу между платежно-транзакционным сервером и веб-эквайрингом, благодаря которому пользователи совершают платежи по интернету.

Методы работы API

Запросы к веб-ресурсу или приложению исполняются при помощи различных способов обращения. От типа запроса зависит, как будет работать алгоритм. Традиционно архитектура REST API использует четыре метода:

  • GET— чтение информации. Запросы, сформированные таким методом, отвечают за простую передачу данных с сервера, но не удаляют и не исправляют их.
  • DELETE— удаление данных.
  • POST— создание или регистрация записей.
  • PUT— изменение или обновление данных.

Эти HTTP-запросы также называют идентификаторами CRUD (создание/чтение/обновление/удаление). Они определяют традиционные виды взаимодействия с данными. Например, чтобы удалить блок с YouTube-видео на странице решения, REST API будет использовать метод DELETE.

Интересно, что архитектура REST API позволяет устанавливать приоритеты при работе с клиентами. Например, можно создавать URL, таргетированные на разные классы продуктов или услуг, размещая приоритетные материалы на более производительном сервере.

Для чего используют REST API

Почти все языки программирования и ОС по умолчанию поддерживают протокол HTTP (или его шифрованню версию HTTPS) — благодаря этому архитектура REST стала столь популярной. 

REST API хорошо масштабируется и подходит для построения приложений с микросервисной архитектурой, при разработке которой важно разделение больших частей на маленькие. Кроме того, REST применяется для обращения сервисов к технологиям облачных вычислений. А поскольку технология подразумевает использование кэша, то это повышает общую производительность REST и, как следствие, она может быть использована на сайте или в сервисе, который будет значительно масштабироваться.

REST API применяется:

  • При разработке микросервисных приложений
  • Если требуется внести изменения в уровень базы данных, не задевая логику приложения
  • При предоставлении доступа к программам поставщиков «третьей стороны»
  • При ограниченной пропускной способности соединения с сервером

Пример реализации REST API

Технологией REST API пользуются все социальные сети — как на уровне авторизации, так и на уровне встраивания соцсети в сторонние проекты. Рядовой пример — кнопки Share, которые встречают на огромном количестве сайтов и позволяют разместить пост, комментарий или содержимое страницы в «ленте» социальной сети.

Нажатие такой интерактивной кнопки вызывает удаленный сервер, который посредством веб-версии API реализует запуск приложения или иной операции.

REST API использует популярнейший сервис микроблогов Twitter, запросы с которому отправляются в формате JSON. Сервер обрабатывает запрос клиента и возвращает ему ответ в виде доступа к ресурсу, расположенному по указанному URL.

Аналогичным образом мобильные (например, банковские) приложения связываются с серверными, с той лишь разницей, что передаваемые данные могут оборачиваться в другие форматы, например, XML.

Защита REST API

Безопасность API начинается с безопасности соединения, поэтому обязательно применение поддерживающего криптографическое шифрование HTTPS-протокола. Он гарантирует, что вся связь программных интерфейсов будет шифроваться с использованием SSL/TLS.

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

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

  • Аутентификация HTTP — наименее надежный, но самый простой метод, который заключается в том, что конфиденциальные данные передаются в заголовках HTTP без шифрования.
  • Аутентификация при помощи API Key — в этом методе применяется уникальный ключ для учетных данных. В такой схеме ключ является длинной последовательностью букв и цифр, которая отличается от пароля для входа владельца учетной записи.
  • Применение протокола авторизации OAuth 2.0, позволяющего выдать веб-приложению права на доступ к пользовательским ресурсам на стороннем сервисе. Это один из наиболее надежных методов обеспечения безопасности: OAuth 2.0 используют, например, API Google и Mail.ru.