Просматривая некоторые веб-сервисы, я наткнулся на эту «новую» технологию, которую Microsoft называет OData . Прочитав их описание в FAQ о том, что такое OData, я с трудом отличаю OData от веб-сервисов REST-ful. Может ли кто-нибудь помочь мне понять различия?
web-services
rest
odata
Скотт
источник
источник
Ответы:
ОБНОВЛЕНИЕ Предупреждение, этот ответ чрезвычайно устарел, поскольку теперь доступна OData V4.
Я написал пост на эту тему некоторое время назад здесь .
Как сказал Франчи, OData основана на Atom Pub. Тем не менее, они наложили некоторые функции сверху и, к сожалению, проигнорировали некоторые ограничения REST в этом процессе.
Возможность запроса службы OData требует от вас создания URI на основе информации, которая недоступна или связана с ответом. Это то, что люди 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.
Если вы хотите подвести итог очень быстро, подумайте об этом как:
источник
В 2012 году OData прошла стандартизацию, поэтому я просто добавлю обновление здесь ..
Сначала определения:
REST - это архитектура отправки сообщений по HTTP.
OData V4 - это конкретная реализация REST, действительно определяющая содержимое сообщений в разных форматах (в настоящее время я думаю, что это AtomPub и JSON). ODataV4 следует остальным принципам.
Например, пользователи asp.net в основном будут использовать контроллер WebApi для сериализации / десериализации объектов в JSON, а javascript с этим что-то сделает. Смысл Odata в том, что он может делать запросы напрямую с URL-адреса с готовыми опциями.
источник
Из документации OData :
источник
для более подробной информации на http://www.odata.org/
источник
ODATA - это особый тип REST, где мы можем запрашивать данные равномерно по URL.
источник
REST означает RE презентационного S татэ Т ransfer , которая является ресурс на основе архитектурного стиля. На основе ресурсов означает, что данные и функциональные возможности рассматриваются как ресурсы.
OData - это веб-протокол, который определяет набор лучших практик для создания и использования веб-сервисов RESTful. OData - это способ создания веб-сервисов RESTful, таким образом, реализация REST.
источник