Что такое REST (на простом английском) [закрыто]

84

В последнее время я заинтересовался знакомством с REST. Я попытался прочитать вики на REST , но это не помогло. Я был бы очень признателен, если бы кто-то мог объяснить на простом английском языке (то есть без ненужного технического жаргона)

  1. Что такое ОТДЫХ
  2. Какую позицию он занимает в экосистеме веб-архитектуры
  3. Насколько тесно (или слабо) это связано с протоколом.
  4. Каковы альтернативы REST и как REST сравнивается с ними.

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

Gaurav
источник
6
Попробуйте это - tomayko.com/writings/rest-to-my-wife
talonx
Я считаю , что это информативно, но не слишком детализированы: ibm.com/developerworks/webservices/library/ws-restful
NoChance
Интересно, можно ли считать эти вопросы ответом?
Гэри Роу
@GaryRowe Я отметил один ответ, думаю, он был удален по какой-то причине. Я не понимаю этот сайт.
Гаурав
1
Ни один из ответов ниже не использует слово «идемпотент». Вы должны посмотреть на это: идемпотентность является важным аспектом любой архитектуры RESTful.
Соломон Медленный

Ответы:

10

Что такое ОТДЫХ (на простом английском)

Простой английский:

REpresentational: действие говорения или действия от имени кого-либо.
Государственный трансферт: статус трансфера.


Технические:

  • мы не передаем фактический объект, а представляем его в форме (например, xml / json / text для представления таблицы базы данных).
  • REST для предоставления общедоступного API через Интернет для обработки операций CRUD с данными. REST ориентирован на доступ к именованным ресурсам через единый согласованный интерфейс.
  • REST представляет через некоторый тип носителя. Некоторые примеры типов мультимедиа включают XML, JSON и RDF.
  • REST - это архитектурный стиль для ресурсно-ориентированной архитектуры (ROA) , а не спецификация или стандарт.
  • Архитектурный стиль означает, что это концепция, теория (и как она реализована, решать только вам)
  • Все идентифицируется уникальной конечной точкой. т.е. есть одна конечная точка для каждого ресурса (данных).
  • Конечная точка состоит из доменного имени с адресом ресурса.

ОТДЫХ против МЫЛА

Premraj
источник
43

Что такое ОТДЫХ?

Изобразительное State Transfer. Он описывает, как одна система может сообщать состояние с другой. Одним из примеров может быть состояние продукта (его название, описание и т. Д.), Представленное в виде XML, JSON или простого текста. Обобщенная идея государства называется ресурсом.

Какую позицию он занимает в экосистеме веб-архитектуры?

REST обычно ассоциируется с интерфейсом веб-сервисов, поскольку HTTP является наиболее распространенным протоколом связи. В 7-уровневой модели он существует на прикладном уровне . Тем не менее, смотрите следующий раздел.

Насколько тесно (или слабо) это связано с протоколом?

REST - это не HTTP. Он использует HTTP, потому что в его наиболее общем виде существует REST, чтобы помочь машине сопоставить концепцию глагола с произвольным набором существительных. HTTP содержит полезный набор общих глаголов (GET, PUT, PATCH и т. Д.), Которые можно применять к произвольным существительным, выраженным как URI, с использованием HTTP, например, GET http://example.org/Product(54 ).

Каковы альтернативы REST и как REST сравнивается с ними

Это похоже на вопрос "Насколько RESTful мой подход?" Используйте следующий список (обобщенный из модели зрелости Ричардсона, как описано Мартином Фаулером ):

Уровень 0 - Болото POX

Используйте POST для всего (читает, пишет, удаляет). Это SOAP, POX, RPI и т. Д. Вы просто используете HTTP в качестве туннеля для своего собственного протокола. Вы нацеливаетесь на единственную конечную точку, которая делает все на основе содержимого тела запроса.

Уровень 1 - Ресурсы

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

Уровень 2 - HTTP глаголы

Используйте глаголы HTTP против ресурсов. Теперь вы получаете это. POST - это создание, PUT - это перезапись, OPTIONS для доступных операций, DELETE для удаления ресурса. В результате использования этих глаголов различные коды состояния HTTP начинают становиться более актуальными (202 ПРИНЯЛИ кого-нибудь?).

Уровень 3 - Гипермедиа контроль ( HATEOAS )

На этом этапе вы совершаете последний скачок и представляете гипермедиа как механизм управления потоком. Клиент REST не нуждается в предварительных знаниях о том, как взаимодействовать с каким-либо конкретным приложением или сервером, кроме общего понимания гипермедиа. Это может быть передано в HTTP через поле заголовка Content-Type. Текстовые форматы включают AtomPub и (более кратко) HAL , в то время как HyperAudio хорошо работает для аудиопотоков (см. SoundCloud и др.)

Гэри Роу
источник
Вы говорите: «REST - это не HTTP», но Рой Филдинг, кажется, довольно зациклен на идее, что гипертекст - это требование, а в случае с HATEOAS без чего, по его словам, вы не делаете «правильный» REST. Хотя гипертекст! = HTTP, мне интересно, сколько вы действительно можете сделать за пределами HTTP ...
Андрес Ф.
В соответствии с этим ( roy.gbiv.com/untangled/2008/… ) Рой Филдинг подчеркивает, что гипертекст, или его подмножество, гипермедиа, может быть выражен вне HTML, лишь бы он поддерживал какие-либо ссылки.
Гэри Роу
3
HTTP хорошо работает с REST, потому что он предлагает стандартизированные глаголы для работы с URI, которые представляют существительные в REST в протоколе без сохранения состояния. Идеально. Однако в своей диссертации ( ics.uci.edu/~fielding/pubs/dis Диссертация/ rest_arch_style.htm ) он отмечает, что «REST не ограничивает связь конкретным протоколом, но ограничивает интерфейс между компонентами и, следовательно, объем предположения о взаимодействии и реализации, которые могли бы быть сделаны между компонентами ". Таким образом, полная реализация FTP вряд ли будет RESTful без управления состоянием на стороне клиента.
Гэри Роу
2
+1 за ссылку Мартина Фаулера. Как обычно, Мартин Фаулер написал статью, которая описывает концепцию в наиболее ясной и лаконичной форме
Том Картер,
Вы state transferне охвачены представлением. выступление или действие от имени кого-либо - это представление, как это работает в этом контексте?
Премрадж
11

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

Например, URL-адрес, такой как http://www.mysite.com/FindProduct/125/, можно интерпретировать как лицо, желающее получить информацию о продукте с идентификатором 125.

Хотя REST обычно рассматривается с точки зрения HTTP, эта концепция может быть применена к другим протоколам, как отмечено в справочнике Википедии.

Другие примеры REST, которые могут быть полезны:

JB King
источник
2
Спасибо за ссылку на "Learn REST: Учебное пособие"! Это первое учебное пособие, которое я прочитал, и у меня возникает ощущение, что я научился чему-то конкретному. Все остальное, что я прочитал (включая статью в Википедии), описывает REST только самым абстрактным образом, в окружении технического жаргона.
Avian00
Первая ссылка не работает. Ваш ответ, тем не менее, полезен!
Энтузиаст