В последнее время я заинтересовался знакомством с REST. Я попытался прочитать вики на REST , но это не помогло. Я был бы очень признателен, если бы кто-то мог объяснить на простом английском языке (то есть без ненужного технического жаргона)
- Что такое ОТДЫХ
- Какую позицию он занимает в экосистеме веб-архитектуры
- Насколько тесно (или слабо) это связано с протоколом.
- Каковы альтернативы REST и как REST сравнивается с ними.
Я понимаю, что может быть невозможно ответить на это в одном или двух параграфах, в этом случае соответствующие ссылки будут высоко оценены.
Ответы:
Простой английский:
REpresentational: действие говорения или действия от имени кого-либо.
Государственный трансферт: статус трансфера.
Технические:
ОТДЫХ против МЫЛА
источник
Что такое ОТДЫХ?
Изобразительное 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 и др.)
источник
state transfer
не охвачены представлением. выступление или действие от имени кого-либо - это представление, как это работает в этом контексте?Хотя REST является аббревиатурой переноса представительского состояния, может быть проще рассмотреть идею выполнения различных действий через несколько интуитивно понятный интерфейс.
Например, URL-адрес, такой как http://www.mysite.com/FindProduct/125/, можно интерпретировать как лицо, желающее получить информацию о продукте с идентификатором 125.
Хотя REST обычно рассматривается с точки зрения HTTP, эта концепция может быть применена к другим протоколам, как отмечено в справочнике Википедии.
Другие примеры REST, которые могут быть полезны:
источник