Как работает метод REST API? Часть 1

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

Что такое REST API?

REST API —  это способ взаимодействия сайтов и веб-приложений с сервером, по-другому его называют RESTful. Чтобы разобраться, как работает REST API, давайте ознакомимся с некоторыми терминами:

  1. Клиент — это человек или программа, которые используют API. Клиент отправляет запросы к API, чтобы получить информацию в приложении или на сайте. Ваш веб-браузер — это клиент, который взаимодействует с API различных веб-сайтов и приложений, чтобы получить от них информацию. Запрошенная информация отправляется обратно в ваш браузер и отображается на вашем экране.
  2. Ресурс — это любая информация, которую API может предоставить клиенту. Например, это может быть пользователь, страница, фотография или публикация. Каждый ресурс имеет уникальное имя, которое называется идентификатором ресурса.
  3. Сервер используется приложением, которое получает запросы клиента и содержит ресурсы, которые нужны клиенту.

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

Этот термин состоит из двух аббревиатур:

  1. API (Application Programming Interface) — это код, который позволяет приложениям обмениваться данными с сервера, то есть программный интерфейс приложения.

  2. REST (Representational State Transfer) — это способ создания API с помощью HTTP.

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

7 правил REST API

В архитектуре REST API есть несколько принципов написания кода интерфейсов. Давайте рассмотрим каждое из них.

1. Разделение клиент-сервер

В архитектуре REST клиент и сервер могут взаимодействовать только одним способом: клиент отправляет запрос серверу, затем сервер отправляет ответ обратно клиенту. Серверы не могут отправлять запросы, а клиенты не могут отвечать на них.

Это помогает упростить взаимодействие между клиентом и сервером. Таким образом, клиентское программное обеспечение можно масштабировать или переносить пользовательский интерфейс на другую платформу.

2. Единый интерфейс

Все данные должны быть запрошены через один URL-адрес стандартными протоколами. Единый интерфейс — это общий язык для любого клиента при взаимодействии с любым REST API. Без этой стандартизации перевод запросов и ответов между программами был бы похож на хаос. Единый интерфейс помогает улучшить архитектуру сайта и сделать взаимодействие с сервером более понятным. 

Для большинства REST API общий протокол — это HTTP. Чтобы использовать HTTP с REST API, клиент отправляет запрос в определенном формате. В 2-ой части нашей статьи в разделе «Архитектура  REST API» мы подробнее расскажем, как это происходит. 

3. Отсутствие информации о состоянии клиента 

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

Такая передача данных сокращает объем памяти сервера и повышает шансы на успешный ответ клиенту, поскольку серверу не нужно делать дополнительные действия, чтобы извлечь старые данные. 

4. Многоуровневая система

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

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

5. Кэширование

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

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

6. Предоставление кода по запросу 

По запросу API может отправлять клиентам код в своем ответе (например скрипт). Это дает клиенту возможность запускать код в своем собственном бэкэнде.

7. Начало от нуля  

Клиент должен знать только одну точку для входа на сервер. Все остальные взаимодействия должны обеспечиваться сервером.


Источник: hubspot.com 

Условия передачи информации

Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:

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

Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).

Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.

Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.