Что такое API - можно посмотреть тут https://t.me/testorest/33
REST (Representational State Transfer — «передача состояния представления») архитектурный стиль, который определяет как компоненты системы должны взаимодействовать друг с другом.
Разберем особенности такого типа API, как REST.
🔹Обычно взаимодействие происходит с помощью запросов/ответов.
🔹Часть системы(компонент), который отправляет запрос, называют Клиентом.
🔹Компонент системы, который обрабатывает запрос, называют Сервером.
🔹Запросы/Ответы в большинстве случаев отправляются по протоколу HTTP(англ. HyperText Transfer Protocol — "протокол передачи гипертекста").
REST, характеризуется набором ограничений, которые нужно учесть при проектировании системы.
Ниже перечислены ограничения для REST-архитектуры приложения:
1️⃣Использование модели Клиент-Сервер.
Позволяет сделать независимыми интерфейсную и серверную часть приложения, где хранятся данные. Повышает переносимость клиентского кода на другие платформы, а упрощение серверной части улучшает масштабируемость системы.
2️⃣Отсутствие состояния
В период между запросами серверу не нужно хранить информацию о состоянии клиента и наоборот. Все запросы от клиента должны быть составлены так, чтобы сервер получил из них всю необходимую информацию для выполнения запроса. Таким образом и сервер, и клиент могут "понимать" любое принятое сообщение, не опираясь при этом на предыдущие сообщения.
3️⃣Кэширование
Клиенты могут выполнять кэширование ответов сервера. Это позволяет меньше обращаться к серверу и быстрее получать нужную информацию.
4️⃣Единообразие интерфейса
Т.е. клиент всегда должен понимать в каком формате и на какие адреса он может слать запрос. Сервер, в свою очередь, должен понимать в каком формате отвечать клиенту. Данный формат взаимодействия клиента и сервера, описывающий что, куда, в каком виде нужно отсылать, называется интерфейсом взаимодействия.
5️⃣Слои
Под слоями подразумевается иерархическая структура сетей. Иногда клиент может общаться напрямую с сервером, а иногда — просто с промежуточным узлом. Применение промежуточных серверов способно повысить масштабируемость за счёт балансировки нагрузки и распределённого кэширования.
6️⃣Код по требованию (необязательное ограничение)
Данное ограничение подразумевает, что клиент может расширять свою функциональность, за счет загрузки кода с сервера в виде апплетов или сценариев.
🔹Приложения, построенные с учетом REST, т.е. не нарушающие накладываемые REST ограничения, называют RESTful.
🔹Большинство людей называют API, для приложений построенных по REST - стандарту «REST API».
🔹REST API могут использовать любой формат сообщений, который хотят использовать разработчики API, включая XML, JSON, CSV, HTML и другие.
Преимущества REST:
🔹надёжность (не нужно сохранять информацию о состоянии клиента, которая может быть утеряна); 🔹производительность (за счёт использования кэша); 🔹масштабируемость; 🔹прозрачность системы взаимодействия; 🔹простота интерфейсов; 🔹портативность компонентов; 🔹лёгкость внесения изменений; 🔹способность эволюционировать, приспосабливаясь к новым требованиям.#testorest #rest #api