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

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

Ответ 1

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

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

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

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

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


ОБНОВЛЕНИЕ. Предупреждение. Этот ответ очень устарел, когда доступен OData V4.

Ответ 2

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

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

Ответ 5

Из OData documentation:

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

...

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

Ответ 6

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

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

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

Ответ 7

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