Разница между OData и REST веб-сервисами - PullRequest
191 голосов
/ 17 марта 2010

Просматривая некоторые веб-сервисы, я наткнулся на эту «новую» технологию, которую Microsoft называет OData . Прочитав их описание в FAQ о том, что такое OData, я с трудом отличаю OData от веб-сервисов REST-ful. Может ли кто-нибудь помочь мне понять разницу?

Ответы [ 8 ]

95 голосов
/ 17 марта 2010

ОБНОВЛЕНИЕ Внимание, этот ответ крайне устарел, поскольку теперь доступна OData V4.


Я написал пост на эту тему некоторое время назад здесь .

Как сказал Франци, OData основана на Atom Pub. Тем не менее, они наложили некоторые функции сверху и, к сожалению, проигнорировали некоторые ограничения REST в этом процессе.

Возможность запроса службы OData требует от вас создания URI на основе информации, которая недоступна или не связана с ответом. Это то, что люди REST называют внеполосной информацией и вводят скрытую связь между клиентом и сервером.

Другое связующее звено, которое вводится, заключается в использовании метаданных EDMX для определения свойств, содержащихся в содержимом записи. Эти метаданные могут быть обнаружены в фиксированной конечной точке, называемой $ metadata. Опять же, клиент должен знать это заранее, это не может быть обнаружено.

К сожалению, Microsoft не сочла целесообразным создавать типы носителей для описания этих ключевых фрагментов данных, поэтому любой клиент OData должен сделать кучу предположений о службе, с которой он общается, и о данных, которые он получает.

62 голосов
/ 17 марта 2010

Протокол OData построен поверх протокола AtomPub. Протокол AtomPub является одним из лучших примеров разработки REST API. Таким образом, в некотором смысле вы правы - OData - это просто еще один REST API, а каждая реализация OData - это веб-служба, полная REST.

Разница в том, что OData - это конкретный протокол; REST - это стиль архитектуры и шаблон дизайна.

30 голосов
/ 20 марта 2010

REST - это общая методика проектирования, используемая для описания доступа к веб-службе. Используя REST, вы можете делать http запросы для получения данных. Если вы попробуете это в своем браузере, это будет похоже на посещение веб-сайта, за исключением того, что вместо возврата веб-страницы вы получите XML. Некоторые сервисы также возвращают данные в формате JSON, который легче использовать с Javascript.

OData - это специальная технология, которая предоставляет данные через REST.

Если вы хотите подвести итог очень быстро, подумайте:

  • REST - шаблон проектирования
  • OData - технология включения
19 голосов
/ 15 декабря 2014

В 2012 году OData прошла стандартизацию, поэтому я просто добавлю сюда обновление.

Сначала определения:

REST - это архитектура того, какотправлять сообщения по HTTP.

OData V4 - это конкретная реализация REST, действительно определяющая содержимое сообщений в разных форматах (в настоящее время я думаю, что это AtomPub и JSON).ODataV4 следует остальным принципам.

Например, пользователи asp.net в основном будут использовать контроллер WebApi для сериализации / десериализации объектов в JSON и заставлять javascript что-то с ним делать.Смысл Odata в том, что он может запрашивать напрямую с URL-адреса с готовыми опциями.

9 голосов
/ 27 ноября 2012

Из OData документация :

Протокол OData - это протокол прикладного уровня для взаимодействия с данными через веб-сервисы RESTful.

...

Протокол OData отличается от других подходов на основе веб-служб REST тем, что он обеспечивает единый способ описания как данных, так и модели данных.

4 голосов
/ 18 февраля 2016

ODATA - это особый вид REST , где мы можем запрашивать данные равномерно с URL.

3 голосов
/ 12 июня 2015

OData (Open Data Protocol) - это стандарт OASIS, который определяет лучшие практика создания и использования RESTful API. OData помогает вам сосредоточиться на вашей бизнес-логике при создании RESTful API без приходится беспокоиться о подходах, чтобы определить запрос и ответ заголовки, коды состояния, методы HTTP, соглашения об URL, типы мультимедиа, форматы полезной нагрузки, параметры запросов и т. д. OData также поможет вам отслеживание изменений, определение функций / действий для повторных процедур и отправка асинхронных / пакетных запросов и т. д. Кроме того, OData предоставляет возможность для расширения, чтобы выполнить любые пользовательские потребности вашего API RESTful.

OData RESTful API легко использовать. Метаданные OData, машиночитаемое описание модели данных API, позволяет создание мощных универсальных клиентских прокси и инструментов. Некоторые из они могут помочь вам взаимодействовать с OData, даже ничего не зная о протоколе. Следующие 6 шагов демонстрируют 6 интересных сценарии потребления OData на разных платформах программирования. Но если вы не являетесь разработчиком и хотели бы просто поиграть с OData, XOData - лучшее начало для вас.

для более подробной информации на http://www.odata.org/

2 голосов
/ 18 октября 2018

REST означает RE презентационный S tate T перевод, который является архитектурным стилем на основе ресурсов. Основанный на ресурсах означает, что данные и функциональные возможности рассматриваются как ресурсы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...