rest restful чем различаются
NDepend
REST vs. RESTful: The Difference and Why the Difference Doesn’t Matter
Share this:
What’s the difference between a REST API and a RESTful one? Is there a difference? This sounds like the kind of academic question that belongs on Reddit. But then you find yourself in a design session, and the person across the table is raising their voice.
The short answer is that REST stands for Representational State Transfer. It’s an architectural pattern for creating web services. A RESTful service is one that implements that pattern.
The long answer starts with “sort of” and “it depends” and continues with more complete definitions.
Defining REST
Let’s start by defining what REST is and is not. For some, REST means a server that exchanges JSON documents with a client over HTTP. Not only is that not a complete definition, but it’s also not always true. The REST specification doesn’t require HTTP or JSON. (The spec doesn’t mention JSON or XML at all.)
The Origins of REST
Roy Fielding introduced the REST architectural pattern in a dissertation he wrote in 2000. The paper defines a means for clients and servers to exchange application data. A key feature is that the client doesn’t need to know anything about the application in advance. The link is to chapter five of his paper. While the entire dissertation describes the hows and whys of REST, that chapter defines the architectural pattern.
Fielding doesn’t mandate specific requirements. Instead, he defines REST regarding constraints and architectural elements.
REST’s Architectural Constraints
Here is a summary of the constraints.
A RESTful service is more than a web server that exchanges JSON, or any other, documents. These constraints work together to create a very specific type of application.
Applying the Constraints
First, the client-server, layered systems and stateless constraints combine to form an application with solid boundaries and clear separations between concerns. Data moves from the server to the client upon request. The client displays or manipulates it. If the state changes, the client sends it back to the server for storage. Fielding specifically contrasts REST with architectures that use distributed objects to hide data from other components. In REST, the client and server share knowledge about data and state. The architecture doesn’t conceal data, it only hides implementations.
The cacheable and uniform state constraints go one step further. Application data is available to clients in a clear and consistent interface and cached when possible.
So, that’s the technical definition of REST. What does it look like in the real world?
RPC Over HTTP vs. RESTful
Often when someone says that a service “isn’t REST,” they’re looking at the URIs or how the service uses HTTP verbs. They’re referring to REST’s presentation of data as a uniform set of resources.
This distinction is sometimes framed as a difference between remote procedures calls (RPC) and REST. Imagine a web service for listing, adding, and removing, items from an e-commerce inventory.
In one version, there’s a single URL that we query with HTTP GETs or POSTs. You interact with the service by POSTing a document, setting the contents to reflect what you want to do.
В чем разница между REST & RESTful
в чем разница между системой отдыха и системой, которая является RESTful?
из нескольких вещей, которые я читать большинство так называемых служб REST на самом деле являются службами RESTful. Так в чем же разница между ними?
12 ответов
RESTful обычно используется для ссылки на веб-службы, реализующие такую архитектуру.
REST based Services / архитектура VC RESTFUL Services / архитектура
чтобы различать или сравнивать эти 2, вы должны знать, что такое остальное.
остальные (REпредставления SТэйт Transfer) в основном архитектурный стиль развития, имеющий некоторые принципы.
он должен быть апатридом!—13—>
он должен получить доступ ко всем ресурсы с сервера, использующие только URI
он не имеет встроенного шифрования
он использует один и только один протокол, который является HTTP
для выполнения операций CRUD он должен использовать HTTP-глаголы, такие как get, post, put и delete
он должен возвращать результат только в виде JSON или XML, atom, OData и т. д. (облегченные данные)
REST based services следуйте некоторым из вышеперечисленных принципов и не всем
RESTFUL services означает, что он следует всем вышеперечисленным принципам.
это похоже на концепцию:
Object-based languages поддерживает все концепции OOPs,примеры: C++, C#
Object oriented languages поддерживает некоторые функции OOPs,примеры: JavaScript, VB
пример:
MVC поддерживает только некоторые из вышеперечисленных принципов REST, тогда как WEB API поддерживает все вышеперечисленные принципы REST.
MVC поддерживает только следующее из REST API
мы можем получить доступ к ресурсу с помощью URI
он поддерживает команду HTTP для доступа к ресурс с сервера
он может возвращать результаты в виде JSON, XML, то есть HTTPResponse.
однако, в то же время в MVC
мы можем использовать сессии
мы можем сделать его stateful
мы можем возвратить видео или Изображение от метода действия регулятора который по существу нарушает принципы остальных
Как сказал Джейсон в комментариях, RESTful просто используется как прилагательное, описывающее что-то, что уважает ограничения REST.
REST означает передачу репрезентативного состояния. Это означает,что само государство не передается, а просто его представление. Самый распространенный пример-это чистый HTML серверные приложения (не JavaScript). Браузер ничего не знает о самом приложении, но через ссылки и ресурсы сервер может передавать состояние приложения в браузер. Где кнопка обычно изменяет переменную состояния (например, открытую страницу) в обычном приложении windows, в браузере у вас есть ссылка, которая представляет такое изменение состояния.
идея заключается в использовании гипермедиа. И, возможно, создать новые типы гипермедиа. Потенциально мы можем расширить браузер с помощью javascript / AJAX и создать новые пользовательские типы гипермедиа. И у нас будет настоящее приложение для отдыха.
Это моя короткая версия того, что означает REST, проблема в том, что ее трудно реализовать. Я лично говорю RESTful, когда я хочу сослаться на принципы отдыха, но я знаю, что я не реально реализуем всю концепцию отдыха. У нас так не говорят SOAPful, потому что вы либо используйте мыло или нет. Я думаю, что большинство людей не отдыхают так, как это было предусмотрено его создателем Роем Филдингом, мы фактически реализуем RESTful или RESTlike архитектуры. Вы можете видеть его диссертации, и вы найдете остальную аббревиатуру, но не слово RESTful.
REST-это стиль архитектуры программного обеспечения для распределенного программного обеспечения
соответствие ограничениям REST называется «RESTful».
очень используется сегодня для создания веб-сервисов в качестве альтернативы SOAP.
здесь у вас есть ссылки на проверка
спасибо за ответы. Читать в этой статье Алекс Родригес, который предполагает, что веб-сервис RESTful имеет 4 основные характеристики, которые:
презентации Стефана Тилькова на REST at Parleys.com неплохие, особенно этот.
для книги вы не можете получить лучше, чем Ричардсон и Руби Restful Web Services.
служба, основанная на REST, называется «службой RESTful».
Источник я полагаюсь на публикацию этого:Архив Доктора Доббса
существует 4 уровня API, определенных в модели зрелости Ричардсона. Они определяются как:
уровень 0: любая система, имеющая одну конечную точку для всех своих API (SOAP или RPC относятся к этой категории). API уровня 0 также могут напоминать «команды».
уровень 1: описанная ResourceUri система. Это система, которая определяет несколько URI на основе сущностей (вместо того, чтобы иметь одну конечную точку, как системы уровня 0). Эти URI можно использовать различные действия http (POST, GET, PUT и т. д.) Для реализации различных действий против этого ресурса.
Уровень 2: он же уровень 1 с совместимым использованием стандартных HTTP-методов / глаголов и нескольких ответов кода состояния
Уровень 3: ака Уровень 2 плюс HATEOAS (гипермедиа включены в ответ, который описывает дополнительные вызовы, которые вы можете сделать)
пока уровни 1, Уровень 2, и уровень 3 можно рассматривать как системы остальных, только строже уровнях (ака 2 и 3 уровня) считается спокойным.
таким образом, по существу, все RESTful apis являются REST apis, но не все REST apis RESTful
система RESTful-это любая система, которая следует соглашениям REST, определенным в оригинальный документ, который создал идею RESTful сетевых приложений.
стоит отметить, что существуют различные уровни покоя. В целом, отдых-это стиль, а не стандарт, поэтому есть место для интерпретации, основанной на потребностях. одним из примеров являются иерархические URL-адреса ресурсов (например, /things/ID/relatedthings ) vs плоские URL (например, /things/ID и /relatedthings?thing=ID )
Что такое REST API. REST, RESTful и RESTlike API, в чем разница?
Representational State Transfer — передача состояния представления.
REST означает передачу репрезентативного состояния. Это архитектурный шаблон для создания веб-сервисов. RESTful реализует этот шаблон.
Что такое REST?
Начнем с определения того, что такое REST, а что нет. Для некоторых REST означает сервер, который обменивается документами JSON с клиентом через HTTP. Это не совсем так. Спецификация REST не требует HTTP или JSON. (В спецификации вообще не упоминается JSON или XML.)
Немного истории REST
Рой Филдинг представил архитектурный паттерн REST в своей дисертации, написанной им в 2000 году. В документе определены средства для клиентов и серверов при помощи которых производится обмена данными между приложениями. Главной особенностью является то, что клиенту ничего не нужно знать о приложении (сервере).
Филдинг не требует особых требований. Вместо этого он определяет REST относительно ограничений и архитектурных элементов.
Архитектурные ограничения REST
Применение ограничений
Во-первых, клиент-сервер, многоуровневая система и ограничения без состояния объединяются, чтобы сформировать приложение с твердыми границами и четким разделением задач. Данные передаются от сервера к клиенту по запросу. Клиент отображает или обрабатывает их. Если состояние изменяется, клиент отправляет его обратно на сервер для хранения. В REST клиент и сервер обмениваются знаниями о данных и состоянии. Архитектура не скрывает данные, она скрывает только реализации.
Ограничения кэшируемого и унифицированного состояния идут еще дальше. Данные приложения доступны клиентам в понятном и последовательном интерфейсе и по возможности кэшированы.
Это техническое определение REST. Как это выглядит в реальном мире?
RPC через HTTP против RESTful
Remote Procedure Call — вызов удалённых процедур. Их часто путают, смотря на URI или на то, как служба использует HTTP-команды. По тому, что складывается впечетлаение, что представление данных в REST это единый набор ресурсов.
Это различие иногда называют различием между вызовами удаленных процедур (RPC) и REST. Для примера разберем метод API для добавления и удаления товаров итернет магазина.
В одной версии есть один URL, который мы запрашиваем с помощью HTTP GET или POST. Мы взаимодействуем со службой, отправляя POST, задавая содержание, которое отражает то, что мы хотим сделать.
Дабавляем новый товар с помощью POST и NewItem:
Запрос данных о товаре с помощью POST и ItemRequest:
Также можно использовать GET.
Удаление или редактирование товаров с помощью POST и ItemDelete или ItemUpdate.
Это не REST. Мы не меняем состояние ресурсов. Мы вызываем функцию с аргументами, которые находятся в JSON или URL.
У службы RESTful есть URI для каждого товара.
Итак, добавление нового товара будет выглядеть как в примере выше.
Но на этом сходство заканчивается. Получение элемента всегда выполняется GET:
Важным моментом является то, что URI работают с данными, а не с удаленными методами.
Но есть еще одна причина, по которой ресурсная модель важна.
REST против RESTful и модель зрелости Ричардсона
Когда вы моделируете свои URI после ресурсов и используете HTTP-команды, вы делаете свой API предсказуемым. Как только разработчики узнают, как вы определили свои ресурсы, они смогут почти предсказать, как будет выглядеть API. Здесь снова упор делается на понимание данных, а не операций.
Но даже если вы не можете сделать API полностью предсказуемым, вы можете задокументировать любую службу REST. Таким образом, каждый элемент, возвращаемый в рассмотреном выше приложении, будет содержать ссылки для удаления, изменения или установки уровня ресурса.
Многие API не соответствуют этому требованию, но называют себя REST. Дело в том, что многие так или иначе нарушают правила. В итоге мы получаем, что многие службы, которые мы называем REST, технически таковыми не являются.
REST, RESTful или RESTlike: имеет ли это значение?
Чем больше требований вы выполните, тем более «full» будет ваше приложение. При выполнении всех требований вы получайте RESTful приложение, если соблюдайте часть из них это RESTlike.
Итак, имеет ли значение сравнение REST и RESTful? Возможно нет. Насколько хорошо ваша архитектура соответствует произвольному стандарту, не так важно, чем то насколько она соответствует вашим потребностям и может ли она расти.
Архитектурный шаблон REST имеет много преимуществ. Филдинг разработал его еще в 2000 году, с тех пор многое изменилось. Но большинство ограничений, которые он имел в виду, все еще с нами. В 2000 году еще не было Android, iPhone или подобных систем. Но Филдинг понял, какие онлайн-приложения нужны и как веб-клиенты будут развиваться из механизмов отображения HTML в законченные приложения. Инструменты, которые мы используем сегодня, адаптированы к REST, а не наоборот.
В чем разница между REST и RESTful
В чем разница между системой REST и системой RESTful?
16 ответов
RESTful обычно используется для обозначения веб-служб, реализующих такую архитектуру.
Службы / Архитектура на основе REST против служб / Архитектура RESTFUL
Он должен быть без гражданства
Он должен получать доступ ко всем ресурсам с сервера, используя только URI
Не имеет встроенного шифрования
Он должен возвращать результат только в виде JSON или XML, атома, OData и т. Д. (Облегченные данные)
REST based services следуют некоторым из вышеперечисленных принципов, а не всем
RESTFUL services означает, что он следует всем вышеперечисленным принципам.
Это похоже на концепцию:
Object oriented languages поддерживают все концепции ООП, примеры : C ++, C #
Object-based languages поддерживают некоторые функции ООП, примеры : JavaScript, VB
Пример :
MVC поддерживает только некоторые из вышеперечисленных принципов REST, тогда как WEB API поддерживает все вышеперечисленные принципы REST.
MVC поддерживает только следующее из REST API
Мы можем получить доступ к ресурсу, используя URI
Он поддерживает HTTP-глагол для доступа к ресурсу с сервера.
Он может возвращать результаты в виде JSON, XML, то есть HTTPResponse.
Однако в то же время в MVC
Мы можем использовать сеанс
Мы можем сделать это с сохранением состояния
Мы можем вернуть видео или изображение из метода действия контроллера, который в основном нарушает принципы REST.
Как сказал Джейсон в комментариях, RESTful просто используется как прилагательное, описывающее что-то, что соблюдает ограничения REST.
Идея в том, чтобы использовать гипермедиа. И, возможно, для создания новых типов гипермедиа. Потенциально мы можем расширить браузер с помощью javascript / AJAX и создать новые пользовательские типы гипермедиа. И у нас было бы настоящее REST-приложение.
Это моя короткая версия того, что означает REST, проблема в том, что это сложно реализовать. Я лично говорю RESTful, когда хочу сослаться на принципы REST, но знаю, что на самом деле не реализую всю концепцию REST. На самом деле мы не говорим SOAPful, потому что вы либо используете SOAP, либо нет. Я думаю, что большинство людей не используют REST так, как задумал его создатель Рой Филдинг, мы фактически реализуем RESTful или REST-подобные архитектуры. Вы можете увидеть его диссертацию, и вы найдете аббревиатуру REST, но не слово ОТДЫХ.
Соответствие ограничениям REST называется «RESTful».
Очень часто используется сегодня для создания веб-сервисов в качестве альтернативы SOAP.
Здесь у вас есть ссылки для проверки
Спасибо за ответы. Прочтите эту статью Алекса Родригеса, в которой говорится, что веб-служба RESTful имеет 4 основные характеристики которые:
Передача репрезентативного состояния (REST) - это стиль архитектуры программного обеспечения для распределенных гипермедийных систем, таких как World Wide Web. Термин «передача репрезентативного состояния» был введен и определен в 2000 году Роем Филдингом 1 [2] в его докторской диссертация. Филдинг является одним из основных авторов версии 1.0 и 1.1 спецификации протокола передачи гипертекста (HTTP). Соответствие ограничениям REST называется «RESTful». Источник: Википедия
Презентации Стефана Тилкова о REST на Parleys.com весьма хороши, особенно этот.
Для книги вы не найдете ничего лучше, чем Restful Web Services Ричардсона и Руби.
Служба, основанная на REST, называется «службой RESTful».
Источник, на который я полагаюсь: Архив доктора Доббса
В модели зрелости Ричардсона определены 4 уровня API. Они определены как:
уровень 0: любая система, имеющая одну конечную точку для всех своих API (SOAP или RPC попадают в эту категорию). API уровня 0 также могут напоминать «команды».
уровень 1: система, описанная ResourceUri. Это система, которая определяет несколько URI на основе сущностей (вместо того, чтобы иметь одну конечную точку, как в системах уровня 0). Эти URI могут использовать различные действия http (POST, GET, PUT и т. Д.) Для реализации различных действий с этим ресурсом.
уровень 2: он же уровень 1 с совместимым использованием стандартных методов / глаголов HTTP и ответов с несколькими кодами состояния
уровень 3: он же уровень 2 плюс HATEOAS (гипермедиа включена в ответ, который описывает дополнительные вызовы, которые вы можете сделать)
В то время как уровни 1, уровень 2 и уровень 3 могут рассматриваться как системы REST, только более строгие уровни (также известные как уровень 2 и уровень 3) считаются RESTful.
Таким образом, по сути, все API RESTful являются REST API, но не все API REST являются RESTful
Пожалуйста, обратите внимание на «»; здесь мы не имеем дело с «реальными» программными объектами.
С точки зрения объектно-ориентированного программирования, REST аналогичен интерфейсу, который должен быть реализован, а служба RESTfull аналогична фактической реализации «интерфейса» REST.
REST просто определяет набор правил, в которых говорится, что такое REST api, и служба RESTfull следует этим правилам.
В приведенных выше ответах уже изложено большинство этих правил, но я знаю одну из важных вещей, которые требуются, и, по моему опыту, часто упускаются из виду, поскольку настоящий REST api должен управляться гиперссылками в дополнение ко всему HTTP. PUT, POST, GET, УДАЛИТЬ джаз.
В чем разница между REST и RESTful
В чем разница между системой REST и системой RESTful?
Из нескольких вещей, которые я прочитал, большинство так называемых REST-сервисов на самом деле являются RESTful-сервисами. Так в чем же разница между ними?
RESTful обычно используется для ссылки на веб-сервисы, реализующие такую архитектуру.
Услуги на основе REST / Архитектура против RESTFUL Services / Архитектура
Это должно быть без гражданства
Он должен получить доступ ко всем ресурсам с сервера, используя только URI
Не имеет встроенного шифрования
Он должен возвращать результат только в форме JSON или XML, Atom, OData и т. Д. (Облегченные данные)
REST based services следовать некоторым из вышеперечисленных принципов и не все
RESTFUL services означает, что он следует всем вышеперечисленным принципам.
Это похоже на концепцию:
Object-based languages поддерживает все концепции ООП, примеры : C ++, C #
Object oriented languages поддерживает некоторые функции ООП, примеры : JavaScript, VB
Пример :
MVC поддерживает только некоторые из вышеуказанных принципов REST, тогда как WEB API поддерживает все вышеупомянутые принципы REST.
MVC поддерживает только следующее из REST API
Мы можем получить доступ к ресурсу, используя URI
Поддерживает HTTP-глагол для доступа к ресурсу с сервера.
Он может возвращать результаты в форме JSON, XML, то есть HTTPResponse.
Однако в то же время в MVC
Мы можем использовать сессию
Мы можем сделать это с состоянием
Мы можем вернуть видео или изображение из метода действия контроллера, который в основном нарушает принципы REST
Как сказал Джейсон в комментариях, RESTful просто используется как прилагательное, описывающее что-то, что соответствует ограничениям REST.
Идея состоит в том, чтобы использовать гипермедиа. И, возможно, для создания новых типов гипермедиа. Потенциально мы можем расширить браузер с помощью javascript / AJAX и создавать новые пользовательские типы гипермедиа. И у нас будет настоящее REST-приложение.
Соответствие ограничениям REST называется «RESTful».
Очень используется сегодня для создания веб-сервисов в качестве альтернативы SOAP.