- Введение в REST API
REST означает REpresentational State Transfer (передача состояния представления). Это популярный архитектурный подход для создания API в современном мире.
Что такое REST?
REST расшифровывается как REpresentational State Transfer. Этот термин первоначально введен Роем Филдингом (Roy Fielding), который также был одним из создателей протокола HTTP. Отличительной особенностью сервисов REST является то, что они позволяют наилучшим образом использовать протокол HTTP. Теперь давайте кратко рассмотрим HTTP.
Протокол HTTP
Когда вы вводите в браузере URL-адрес, например www.google.com, на сервер отправляется запрос на веб-сайт, идентифицированный URL-адресом. Затем этот сервер формирует и выдает ответ. Важным является формат этих запросов и ответов. Эти форматы определяются протоколом HTTP - Hyper Text Transfer Protocol.
Когда вы набираете URL в браузере, он отправляет запрос GET на указанный сервер. Затем сервер отвечает HTTP-ответом, который содержит данные в формате HTML - Hyper Text Markup Language. Затем браузер получает этот HTML-код и отображает его на экране.
Допустим, вы заполняете форму, присутствующую на веб-странице, со списком элементов. В таком случае, когда вы нажимаете кнопку Submit, HTTP-запрос POST отправляется на сервер.
HTTP и RESTful веб-сервисы
HTTP обеспечивает базовый уровень для создания веб-сервисов. Поэтому важно понимать HTTP. Вот несколько ключевых абстракций.
Ресурс
Ресурс - это ключевая абстракция, на которой концентрируется протокол HTTP. Ресурс - это все, что вы хотите показать внешнему миру через ваше приложение. Например, если мы пишем приложение для управления задачами, экземпляры ресурсов будут следующие:
URI ресурса
Когда вы разрабатываете RESTful сервисы, вы должны сосредоточить свое внимание на ресурсах приложения. Способ, которым мы идентифицируем ресурс для предоставления, состоит в том, чтобы назначить ему URI - универсальный идентификатор ресурса. Например:
REST и Ресурсы
Важно отметить, что с REST вам нужно думать о приложении с точки зрения ресурсов:
Вот как обычно реализуется служба REST:
REST фокусируется на ресурсах и на том, насколько эффективно вы выполняете операции с ними, используя HTTP.
Компоненты HTTP
HTTP определяет следующую структуру запроса (request):
HTTP определяет следующую структуру ответного сообщения (response):
Методы HTTP-запроса
Метод, используемый в HTTP-запросе, указывает, какое действие вы хотите выполнить с этим запросом. Важные примеры:
Код статуса ответа HTTP
Код состояния всегда присутствует в ответе HTTP. Типичные примеры:
- Различия REST и SOAP
На самом деле, сравнивать их немного похоже на сравнение яблок с апельсинами, поскольку SOAP - это формат протокола, основанный на XML, тогда как REST - это архитектурный подход.
REST и SOAP
REST и SOAP на самом деле не сопоставимы. REST - это архитектурный стиль. SOAP - это формат обмена сообщениями. Давайте сравним популярные реализации стилей REST и SOAP.
На верхнем уровне SOAP ограничивает структуры ваших сообщений, тогда как REST - это архитектурный подход, ориентированный на использование HTTP в качестве транспортного протокола.
- Специфика SOAP - это формат обмена данными. С SOAP это всегда SOAP-XML, который представляет собой XML, включающий:
- Специфика REST - использование HTTP в качестве транспортного протокола. Он подразумевает наилучшее использование функций, предоставляемых HTTP - методы запросов, заголовки запросов, ответы, заголовки ответов и т. д.
Формат обмена сообщениями
Определения услуг
Транспорт
Простота реализации
RESTFful веб-сервисы, как правило, гораздо проще реализовать, чем веб-сервисы на основе SOAP.