Що таке REST?
Представницький державний трансфер. Він описує, як одна система може зв’язувати стан з іншою. Одним із прикладів може бути стан продукту (його назва, опис тощо), представлений у вигляді XML, JSON або простого тексту. Узагальнена ідея держави називається ресурсом.
Яку позицію вона займає в екосистемі веб-архітектури?
REST зазвичай асоціюється з інтерфейсом веб-служб, оскільки HTTP - це найпоширеніший протокол оператора. У 7-шаровій моделі вона існує на рівні додатків . Однак дивіться наступний розділ.
Наскільки щільно (або вільно) він поєднується з протоколом?
REST - це не HTTP. Він використовує HTTP, оскільки в його найзагальнішому вигляді існує REST, щоб допомогти машині зіставити поняття дієслова проти довільної колекції іменників. HTTP містить корисний набір загальних дієслів (GET, PUT, PATCH тощо), який може застосовуватися до довільних іменників, виражених як URI, за допомогою HTTP, наприклад GET http://example.org/Product(54 ).
Які альтернативи REST та як REST порівнюється з ними
Це схоже на запитання: "Наскільки РЕСТИВНІЙ мій підхід?" Скористайтеся наступним списком (узагальненим із моделі зрілості Річардсона, як описано Мартіном Фаулером ):
Рівень 0 - болото POX
Використовуйте POST для всього (читає, пише, видаляє). Це SOAP, POX, RPI тощо. Ви просто використовуєте HTTP як тунель для власного протоколу. Ви орієнтуєтесь на єдину кінцеву точку, яка виконує все на основі вмісту органу запиту.
Рівень 1 - Ресурси
Використовуйте POST для всього. Націліть на кілька кінцевих точок, призначених для подання інформації про певну річ. Ви щойно відкрили ресурси.
Рівень 2 - дієслова HTTP
Використовуйте HTTP дієслова проти ресурсів. Тепер ви це отримуєте. POST - це створити, PUT - це перезаписати, ВАРІАНТИ для доступних операцій, ВИДАЛИТИ, а також видалити ресурс. В результаті використання цих дієслів різні коди статусу HTTP починають ставати більш актуальними (202 ПРИЙМОГО хто?).
3 рівень - контроль гіпермедіа ( HATEOAS )
У цей момент ви робите остаточний стрибок і впроваджуєте гіпермедіа як механізм регулювання потоку. Клієнт REST не потребує попередніх знань про те, як взаємодіяти з будь-яким конкретним додатком або сервером за межами загального розуміння гіпермедіа. Це може бути передано на HTTP через поле заголовка Content-Type. Текстові формати включають AtomPub та (більш стислий) HAL , тоді як HyperAudio добре працює для аудіо потоків (див. SoundCloud та ін.)