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

При изучении некоторых веб-сервисов я натыкался на эту "новую" технологию, что Microsoft называет OData. Прочитывая их описание в FAQ на том, каков OData, мне нелегко отличать OData от УСПОКОИТЕЛЬНЫХ веб-сервисов. Кто-то мог помочь мне понять различия?

192
задан abatishchev 8 May 2013 в 16:40
поделиться

3 ответа

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


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

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

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

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

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

95
ответ дан 23 November 2019 в 05:31
поделиться

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

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

62
ответ дан 23 November 2019 в 05:31
поделиться

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

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

Если вы хотите быстро подвести итог, представьте себе:

  • REST - шаблон проектирования
  • OData - включение технологий
30
ответ дан 23 November 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: