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


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

7 174

7 ответов:

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


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

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

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

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

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

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

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

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

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

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

  • REST-design pattern
  • OData-технология включения

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

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

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

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

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

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

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

...

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

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

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

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

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