What's new

Article [ENSA] CCNA [69. Архитектура REST]

gx6060 0

gx6060

Staff member
Nov 10, 2019
259
313
REST и RESTful API

Веб-браузеры используют HTTP или HTTPS для запроса (GET) веб-страницы. При успешном запросе (код состояния HTTP 200) веб-серверы отвечают на запросы GET веб-страницей в кодировке HTML

1636040920512.png

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

Соответствие ограничениям архитектуры REST обычно называется «RESTful». API можно считать «RESTful», если он имеет следующие функции:
  • Клиент-Сервер (Client-Server) - Клиент управляет интерфейсом (front end), а сервер - обработкой данных (back end). Каждый может быть заменен независимо друг от друга
  • Без сохранения состояния (Stateless) - Никакие клиентские данные не хранятся на сервере между запросами. Состояние сессии сохраняется на клиенте.
  • Кешируемый (Cacheable) - Клиент может кешировать запрос для улучшения производительности.
Реализация RESTful

Веб-сервисы RESTful реализованы с использованием HTTP. Это набор ресурсов с четырьмя определенными аспектами:
  • Базовый унифицированный идентификатор ресурса (URI) для веб-службы, такой как http://example.com/resources.
  • Формат данных, поддерживаемый веб-сервисом. Это часто JSON, YAML или XML, но это может быть любой другой формат данных, который является допустимым стандартом гипертекста.
  • Набор операций, поддерживаемых веб-сервисом с использованием методов HTTP.
  • API должен быть управляемым гипертекстом.
API RESTful используют общие методы HTTP, включая POST, GET, PUT, PATCH и DELETE. Как показано в следующей таблице, они соответствуют операциям RESTful: создание, чтение, обновление и удаление (Create, Read, Update, Delete или CRUD).

Метод HTTPОперация RESTful
POSTCreate
GETЧтение
PUT/PATCHUpdate
DELETEDelete

URI, URN и URL

Веб-ресурсы и веб-службы, такие как RESTful API, идентифицируются с помощью URI. URI - это строка символов, которая идентифицирует конкретный сетевой ресурс. Как показано на рисунке, URI имеет две специализации:
  • Единое имя ресурса (Uniform Resource Name - URN) - идентифицирует только пространство имен ресурса (веб-страница, документ, изображение и т. д.) без ссылки на протокол.
  • Унифицированный указатель ресурса (Uniform Resource Locator - URL) - определяет сетевое местоположение конкретного ресурса в сети. HTTP или HTTPS URL обычно используются в веб-браузерах. Другие протоколы, такие как FTP, SFTP, SSH и другие, могут использовать URL.
Анатомия запроса RESTful

1636040996096.png

В веб-службе RESTful запрос к URI ресурса вызовет ответ. Ответом будет полезная нагрузка, обычно отформатированная в JSON, но может быть HTML, XML или каким-либо другим форматом.

Выделяют следующие части запроса API:
  • Сервер API - это URL-адрес сервера, который отвечает на запросы REST. В данном примере это сервер API MapQuest.
  • Ресурсы - Определяют API, который запрашивается. В этом примере это API направлений MapQuest.
  • Запрос- Определяет формат данных и информацию, которую клиент запрашивает у службы API. Запросы могут включать в себя:
    • Формат – Обычно это JSON, но может быть YAML или XML. В этом примере запрашивается JSON.
    • Ключ - Ключ для авторизации, если требуется. MapQuest требует ключ для своих направлений API. В приведенном выше URI вам потребуется заменить «KEY» на действительный ключ, чтобы отправить действительный запрос.
    • Параметры - Параметры используются для отправки информации, относящейся к запросу. В этом примере параметры запроса включают информацию о направлениях, которые нужны API, чтобы он знал, какие направления возвращать: "from=San+Jose,Ca" и "to=Monterey,Ca".
Многие API-интерфейсы RESTful, включая общедоступные API, требуют ключа. Ключ используется для определения источника запроса. Вот несколько причин, по которым провайдеру API может потребоваться ключ:
  • Для проверки подлинности источника необходимо убедиться, что он авторизован для использования API.
  • Ограничить число людей, использующих API.
  • Ограничить количество запросов на пользователя.
  • Для лучшего сбора и отслеживания данных, запрашиваемых пользователями.
  • Для сбора информации о людях, использующих API.
Приложения RESTful API

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

Некоторые запросы RESTful API можно выполнить, введя URI в веб-браузере. API направлений MapQuest является примером этого. Запрос RESTful API также может быть сделан другими способами.
 
Last edited by a moderator:
Top Bottom