Разница между OData и веб-службами REST

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

7 ответов


обновление предупреждение, этот ответ чрезвычайно устарел теперь, когда OData V4 доступен.


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

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

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

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

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


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

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


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

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

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

  • отдых-шаблон дизайна
  • OData-включение технологии

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

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

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

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

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


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

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

...

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


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

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

для больше деталей на http://www.odata.org/


службы - это особый вид остальное где мы можем запрос данных единообразно из URL.