Що таке REST (простою англійською) [закрито]


84

Останнім часом я зацікавився ознайомленням з REST. Я спробував прочитати запис вікі на REST , але це не допомогло. Я дуже вдячний, якщо хтось може пояснити простою англійською мовою (тобто без зайвого технічного жаргону)

  1. Що таке REST
  2. Яку позицію вона займає в екосистемі веб-архітектури
  3. Наскільки щільно (або вільно) він поєднується з протоколом.
  4. Які альтернативи REST та як REST порівнюється з ними.

Я розумію, що відповісти на це неможливо одним чи двома абзацами, у цьому випадку відповідні посилання будуть високо оцінені.


6
Спробуйте це - tomayko.com/writings/rest-to-my-wife
talonx

Я вважаю це інформативним, але не надто детальним: ibm.com/developerworks/webservices/library/ws-restful
NoChance

Цікаво, чи можна вважати відповіді на ці питання?
Гері Роу

@GaryRowe Я позначив одну відповідь, гадаю, її чомусь видалили. Я не розумію цей сайт.
Гаурав

1
Жодна з наведених нижче відповідей не використовує слово "ідентифікатор". Ви повинні подивитися на це: idempotency є важливим аспектом будь-якої архітектури RESTful.
Соломон повільно

Відповіді:


10

Що таке REST (простою англійською)

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

Представництво: дія виступу чи дії від когось.
Передача стану : статус передачі.


Технічні:

  • ми не передаємо фактичний об'єкт, а подання його у формі (наприклад, xml / json / text для подання таблиці бази даних).
  • RESTs для відкриття відкритого API через Інтернет для обробки операцій CRUD над даними. REST орієнтований на доступ до названих ресурсів через єдиний послідовний інтерфейс.
  • REST представлений через певний тип носія. Деякі приклади типів мультимедіа включають XML, JSON та RDF.
  • REST - це архітектурний стиль для орієнтованої на ресурси архітектури (ROA) , а не специфікація чи стандарт.
  • Архітектурний стиль означає, що це концепція, теорія (а як її реалізувати, це залежить від вас)
  • Все визначається унікальною кінцевою точкою. тобто є одна кінцева точка для кожного ресурсу (даних).
  • Кінцева точка складається з доменного імені з адресою ресурсу.

REST vs SOAP


43

Що таке 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 та ін.)


ви говорите: "REST - це не HTTP", але Рой Філдінг здається досить зафіксованим на думці, що гіпертекст - це вимога, що з усією угодою HATEOAS, без якої - за його словами, ви не робите "належного" REST. Хоча гіпертекст! = HTTP, мені цікаво, скільки ви насправді можете зробити за межами HTTP ...
Андрес Ф.

Відповідно до цього ( roy.gbiv.com/untangled/2008/… ) Рой Філдінг вказує на те, що гіпертекст або його підмножина, гіпермедіа, може виражатися поза HTML лише за умови, що він підтримує якесь посилання.
Гері Роу

3
HTTP добре працює з REST, оскільки пропонує стандартизовані дієслова для роботи з URI, які представляють іменники в REST в протоколі без стану. Ідеально. Однак у своїй дисертації ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ) він зазначає, що "REST не обмежує спілкування певним протоколом, але обмежує інтерфейс між компонентами, а отже, і сферою застосування припущення про взаємодію та реалізацію, які в іншому випадку можуть бути зроблені між компонентами. " Таким чином, повноцінна реалізація FTP навряд чи буде RESTful без управління державою на базі клієнта.
Гері Роу

2
+1 за посиланням Мартіна Фаулера. Як завжди Мартін Фаулер написав статтю, в якій описує концепцію найбільш чітким і стислим можливим способом
Том Картер,

ви state transferне охоплювали представництва. дія виступу чи дії від когось - це представлення того, як це працює в цьому контексті?
Премрай,

11

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

Наприклад, така URL-адреса, як http://www.mysite.com/FindProduct/125/, може трактуватися як людина, яка бажає отримати інформацію про продукт з ідентифікатором 125.

Хоча REST зазвичай думається з точки зору HTTP, концепція може бути застосована до інших протоколів, як зазначено у посиланні на Вікіпедію.

Інші приклади REST, які можуть бути корисні:


2
Дякуємо за посилання на "Learn REST: Підручник"! Ось перший підручник, який я прочитав, залишає у мене відчуття, що я дізнався щось конкретне. Все інше, що я читав (включаючи статтю у Вікіпедії), описує REST лише найбільш абстрактними способами, оточеними технічним жаргоном.
Avian00

Перше посилання не працює. Ваша відповідь все-таки корисна !!
Ентузіаст
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.