gx6060
Staff member
- Nov 10, 2019
- 259
- 313
REST и RESTful API
Веб-браузеры используют HTTP или HTTPS для запроса (GET) веб-страницы. При успешном запросе (код состояния HTTP 200) веб-серверы отвечают на запросы GET веб-страницей в кодировке HTML
REST - это архитектурный стиль для разработки приложений веб-сервисов. Это относится к стилю веб-архитектуры, которая имеет множество базовых характеристик и управляет поведением клиентов и серверов. Проще говоря, REST API - это API, который работает поверх протокола HTTP. Он определяет набор функций, которые разработчики могут использовать для выполнения запросов и получения ответов по протоколу HTTP, например, GET и POST.
Соответствие ограничениям архитектуры REST обычно называется «RESTful». API можно считать «RESTful», если он имеет следующие функции:
- Клиент-Сервер (Client-Server) - Клиент управляет интерфейсом (front end), а сервер - обработкой данных (back end). Каждый может быть заменен независимо друг от друга
- Без сохранения состояния (Stateless) - Никакие клиентские данные не хранятся на сервере между запросами. Состояние сессии сохраняется на клиенте.
- Кешируемый (Cacheable) - Клиент может кешировать запрос для улучшения производительности.
Веб-сервисы RESTful реализованы с использованием HTTP. Это набор ресурсов с четырьмя определенными аспектами:
- Базовый унифицированный идентификатор ресурса (URI) для веб-службы, такой как http://example.com/resources.
- Формат данных, поддерживаемый веб-сервисом. Это часто JSON, YAML или XML, но это может быть любой другой формат данных, который является допустимым стандартом гипертекста.
- Набор операций, поддерживаемых веб-сервисом с использованием методов HTTP.
- API должен быть управляемым гипертекстом.
Метод HTTP | Операция RESTful |
---|---|
POST | Create |
GET | Чтение |
PUT/PATCH | Update |
DELETE | Delete |
URI, URN и URL
Веб-ресурсы и веб-службы, такие как RESTful API, идентифицируются с помощью URI. URI - это строка символов, которая идентифицирует конкретный сетевой ресурс. Как показано на рисунке, URI имеет две специализации:
- Единое имя ресурса (Uniform Resource Name - URN) - идентифицирует только пространство имен ресурса (веб-страница, документ, изображение и т. д.) без ссылки на протокол.
- Унифицированный указатель ресурса (Uniform Resource Locator - URL) - определяет сетевое местоположение конкретного ресурса в сети. HTTP или HTTPS URL обычно используются в веб-браузерах. Другие протоколы, такие как FTP, SFTP, SSH и другие, могут использовать URL.
В веб-службе 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.
- Ограничить число людей, использующих API.
- Ограничить количество запросов на пользователя.
- Для лучшего сбора и отслеживания данных, запрашиваемых пользователями.
- Для сбора информации о людях, использующих API.
Многие веб-сайты и приложения используют API для доступа к информации и предоставления услуг своим клиентам. Например, для работы своего веб-сайта туристическая служба использует API различных авиакомпаний для предоставления пользователю информации об авиакомпании, отеле и другой информации.
Некоторые запросы RESTful API можно выполнить, введя URI в веб-браузере. API направлений MapQuest является примером этого. Запрос RESTful API также может быть сделан другими способами.
Last edited by a moderator: