Какая разница между REST & RESTful

Какая разница между системой REST и системой RESTful?

Из нескольких вещей, которые я читал, большинство так называемых сервисов REST фактически являются службами RESTful. Так в чем разница между ними.

Ответ 1

Репрезентативная передача состояния (REST) ​​ - это стиль архитектуры программного обеспечения. Как описано в диссертации Роя Филдинга, REST является "архитектурным стилем", который в основном использует существующие технологии и протоколы Интернета.

RESTful обычно используется для обозначения веб-служб, реализующих такую ​​архитектуру.

Ответ 2

"REST" - архитектурная парадигма. "RESTful" описывает эту парадигму.

Ответ 3

Услуги на основе REST/Архитектура VC RESTFUL Услуги/Архитектура

Чтобы дифференцировать или сравнить эти 2, вы должны знать, что такое ОТДЫХ.

REST (RE презентационной S татэ~d T ransfer) в основном архитектурный стиль развития, имеющее некоторые принципы...

  • Это должно быть без гражданства

  • Он должен получить доступ ко всем ресурсам с сервера, используя только URI

  • Не имеет встроенного шифрования

  • У него нет сессии

  • Он использует один и только один протокол, который является HTTP

  • Для выполнения операций CRUD следует использовать HTTP-глаголы, такие как get, post, put и delete

  • Он должен возвращать результат только в форме JSON или XML, Atom, OData и т.д. (Облегченные данные)

REST based services следуют некоторым из вышеперечисленных принципов и не все

RESTFUL services означает, что он следует всем вышеперечисленным принципам.

Это похоже на концепцию:

Object-based languages поддерживают все концепции ООП, примеры: C++, С#

Object oriented languages поддерживают некоторые функции ООП, примеры: JavaScript, VB


Пример:

ASP Dot NET MVC 4 REST-Based а Microsoft WEB API - RESTFul.

MVC поддерживает только некоторые из вышеуказанных принципов REST, тогда как WEB API поддерживает все вышеупомянутые принципы REST.

MVC поддерживает только следующее из REST API

  • Мы можем получить доступ к ресурсу, используя URI

  • Поддерживает HTTP-глагол для доступа к ресурсу с сервера.

  • Он может возвращать результаты в форме JSON, XML, то есть HTTPResponse.

Однако в то же время в MVC

  • Мы можем использовать сессию

  • Мы можем сделать это с состоянием

  • Мы можем вернуть видео или изображение из метода действия контроллера, который в основном нарушает принципы REST

Вот почему MVC REST-Based а WEB API поддерживает все вышеперечисленные принципы и является RESTFul.

Ответ 4

Как сказал Джейсон в комментариях, RESTful просто используется в качестве прилагательного, описывающего что-то, что соответствует ограничениям REST.

Ответ 5

REST означает передачу репрезентативного состояния. Это означает, что само государство не передается, а простое представление. Наиболее распространенным примером является приложение на основе HTML-приложений на основе чистого кода (без javascript). Браузер ничего не знает о самом приложении, но через ссылки и ресурсы, сервер может передать состояние приложения в браузер. Если кнопка обычно меняет переменную состояния (например, открытую страницу) в обычном приложении Windows, в браузере у вас есть ссылка, которая представляет такое изменение состояния.

Идея заключается в использовании гипермедиа. И, возможно, для создания новых типов гипермедиа. Потенциально мы можем расширить браузер с помощью javascript/AJAX и создать новые настраиваемые типы гипермедиа. И у нас будет истинное приложение REST.

Это моя короткая версия того, что означает REST, проблема в том, что его трудно реализовать. Я лично говорю RESTful, когда хочу сделать ссылку на принципы REST, но я знаю, что на самом деле я не реализую всю концепцию REST. Мы действительно не говорим SOAPful, потому что вы используете SOAP или нет. Я думаю, что большинство людей не делают REST так, как это предполагал создатель Рой Филдинг, мы на самом деле реализуем архитектуры RESTful или RESTlike. Вы можете увидеть его dissertation, и вы найдете аббревиатуру REST, но не слово RESTful.

Ответ 6

REST - это стиль архитектуры программного обеспечения для распределенного программного обеспечения.

В соответствии с ограничениями REST это называется RESTful.

Сегодня используется для создания веб-сервисов в качестве альтернативы SOAP.

Здесь у вас есть ссылки для проверки

http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/

Ответ 7

спасибо за ответы. Прочитайте эту статью от Alex Rodriguez, в которой говорится, что веб-служба RESTful имеет 4 основные характеристики, которые:

  • Использовать методы HTTP явно.
  • Будьте без гражданства.
  • Открыть каталоги структуры, подобные URI.
  • Передача XML, Обозначение объекта JavaScript (JSON) или и то, и другое.

Ответ 8

Репрезентативная передача состояния (REST) ​​- это стиль архитектуры программного обеспечения для распределенных систем гипермедиа, таких как World Wide Web. Термин "Передача государственного представительства" был введен и определен в 2000 году Роем Филдингом 1 [2] в его докторской диссертации. Филдинг является одним из основных авторов спецификаций протокола HTTP (Hypertext Transfer Protocol, HTTP) версии 1.0 и 1.1. Соответствие ограничениям REST называется "RESTful". Источник: Википедия

Ответ 9

Веб-сервисы - это, по сути, веб-сайты, контент которых потребляется компьютерными программами, а не людьми. REST - это набор архитектурных принципов, которые предусматривают, что веб-службы должны максимально использовать HTTP и другие веб-стандарты, чтобы программы получали все хорошие вещи, которые люди уже могут получить из Интернета. REST часто противопоставляется веб-службам SOAP и другим ориентированным на веб-службам "удаленных процедур".

Презентации Stefan Tilkov на REST на Parleys.com неплохие, особенно этот.

Для книги вы не можете получить больше, чем Richardson и Ruby Restful Web Services.

Ответ 10

Служба, основанная на REST, называется "службой RESTful".

Источник я полагаюсь на публикацию: Архив Dr.Dobbs

Ответ 11

В модели зрелости Ричардсона определены 4 уровня API. Они определены как:

  • Уровень 0: любая система, которая имеет единственную конечную точку для всех своих API (SOAP или RPC попадают в эту категорию). Уровень 0 apis также может напоминать "команды".

  • Уровень 1: описанная система ResourceUri. Это система, которая определяет несколько основанных на объектах URI (вместо того, чтобы иметь одну конечную точку, как в системах уровня 0). Эти URI могут использовать различные действия http (POST, GET, PUT и т.д.) Для реализации различных действий с этим ресурсом.

  • уровень 2: он же уровень 1 с совместимым использованием стандартных методов/глаголов HTTP и ответов с несколькими кодами состояния

  • уровень 3: он же уровень 2 плюс HATEOAS (гипермедиа включена в ответ, который описывает дополнительные звонки, которые вы можете сделать)

Хотя уровни 1, уровень 2 и уровень 3 можно рассматривать как системы REST, только RESTful считаются только более строгими уровнями (уровня 2 и 3).

Таким образом, по существу все API RESTful являются API REST, но не все API REST являются RESTful

определение модели зрелости Ричардсона

Ответ 12

Думайте о REST как об архитектурном "классе", тогда как RESTful является "экземпляром" этого класса.

Пожалуйста, обратите внимание на ""; мы не имеем дело с "реальными" объектами программирования здесь.

Ответ 13

Хорошо, позвольте мне помочь вам запомнить концепции.

  • ОТДЕЛ - это архитектурный танец, а RESTful - танцор (следует ВСЕМ этапам танца REST) ​​

  • JPA - это особый танец, а Hibernate - один из танцовщиц (следуйте за всеми шагами танца JPA + некоторые дополнительные ходы).

  • SLF4J - это особый танец, а SLF4J-Simple - один из танцоров.

Ответ 14

"Служба REST" и "Служба RESTful" - это одно и то же.

Система RESTful - это любая система, которая следует соглашениям REST, определенным в первоначальном документе, который создал идею сетевых приложений RESTful.

Стоит отметить, что существуют различные уровни RESTfulness. В целом, REST - это стиль, а не стандарт, поэтому есть возможность для интерпретации в зависимости от потребностей. один пример - это иерархические URL ресурсов (например, /things/ID/relatedthings) по сравнению с плоскими URL-адресами (например, /things/ID и /relatedthings?thing=ID)