Что такое ОТДЫХ?
Изобразительное 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 и др.)