Я пытаюсь написать API веб-сервиса и думаю о создании сервиса REST. Что означает OData в этом контексте? Можете ли вы объяснить разницу между OData и REST?
REST - это архитектура для отправки сообщений от клиента к серверу с использованием HTTP. OData - это стандарт, отстаиваемый Microsoft и использующий архитектуру REST для отправки определенных типов сообщений по HTTP. OData говорит о том, как выглядят сообщения (содержимое). REST - это архитектура того, как эти сообщения отправляются туда и обратно.
Я согласен с @jkohlhepp и @Tom Squires, хотя добавлю пару деталей.
OData - это открытый стандарт (отстаиваемый Microsoft, но принятый за пределы Microsoft и доступный для многих платформ, включая iOS и Android).
Полезные данные OData основаны на формате Atom (чтение) и AtomPub (обновление). (Помимо этого, Atom также является основой для популярного формата RSS-канала.) Atom является расширяемым, и OData воспользовалась этим для создания известных расширений. Например, для службы OData существуют соглашения URI со многими возможностями, такими как фильтрация (фильтрация по дате или имени клиента) и сортировка и так далее. Использование этих специальных соглашений стандартным (определяемым OData) способом делает OData мощными, поскольку они действуют аналогично, и мы можем создавать инструменты для работы с ними и тому подобное.
Доступны некоторые хорошо известные источники OData, такие как Netflix (там есть все данные о фильмах - с ними интересно играть!).
REST - это архитектурный стиль построения веб-сервисов. Это просто модель, которая говорит, что вы можете использовать HTTP и его глаголы (POST / PUT / GET и т. Д.) Для выполнения CRUD на ресурсах, предоставляемых вашими Сервисами. Но в REST отсутствуют какие-либо подробности о том, как должны выглядеть URL-адреса, как должны выглядеть форматы запросов / ответов, как запрашивать информацию или на базовом уровне, какие операции и ресурсы служба поддерживает в первую очередь!
В мире веб-сервисов на основе XML у нас есть SOAP, WSDL, WS- *, которые определяют стандарты, обеспечивающие взаимодействие между различными сервисами и их клиентами.
OData пытается сделать это для веб-служб на основе REST.
Он определяет $ metadata в формате CSDL, чтобы объяснить, какие (сущности / сложные) типы поддерживает ваш сервис и их свойства, их типы данных, как связаны ваши типы, и если ваш сервис также поддерживает некоторые специальные операции, выходящие за рамки традиционного CRUD.
OData стандартизирует форматы URL для ваших ресурсов, а именно: / Entity, / Entity ('id') или / Entity (key1 = value1, key2 = value2) ... и так далее ..
OData стандартизирует форматы запросов / ответов в JSON и AtomXml о том, как структурированы данные и их метаданные.
OData также задает очень богатый язык запросов, позволяющий потребителям запрашивать ваши службы для получения точной информации, которую они ищут - с помощью $ filter, $ orderby, $ skip, $ top, $ expand.
OData помогает вам описать всю вашу модель данных - сущности и их отношения, а также поддерживает все виды операций, таких как CREATE, UPDATE, DELETE, GET, MERGE и даже CUSTOM OPERATIONS для этих сущностей и / или отношений.
OData v4 теперь является стандартом OASIS, который имеет множество улучшений по сравнению с более ранними версиями. Экосистема для OData медленно растет.
Ответы:
REST - это архитектура для отправки сообщений от клиента к серверу с использованием HTTP. OData - это стандарт, отстаиваемый Microsoft и использующий архитектуру REST для отправки определенных типов сообщений по HTTP. OData говорит о том, как выглядят сообщения (содержимое). REST - это архитектура того, как эти сообщения отправляются туда и обратно.
источник
Я согласен с @jkohlhepp и @Tom Squires, хотя добавлю пару деталей.
OData - это открытый стандарт (отстаиваемый Microsoft, но принятый за пределы Microsoft и доступный для многих платформ, включая iOS и Android).
Полезные данные OData основаны на формате Atom (чтение) и AtomPub (обновление). (Помимо этого, Atom также является основой для популярного формата RSS-канала.) Atom является расширяемым, и OData воспользовалась этим для создания известных расширений. Например, для службы OData существуют соглашения URI со многими возможностями, такими как фильтрация (фильтрация по дате или имени клиента) и сортировка и так далее. Использование этих специальных соглашений стандартным (определяемым OData) способом делает OData мощными, поскольку они действуют аналогично, и мы можем создавать инструменты для работы с ними и тому подобное.
Доступны некоторые хорошо известные источники OData, такие как Netflix (там есть все данные о фильмах - с ними интересно играть!).
Читайте все о OData на odata.org .
Удачи! -Билл
источник
REST - это архитектурный стиль построения веб-сервисов. Это просто модель, которая говорит, что вы можете использовать HTTP и его глаголы (POST / PUT / GET и т. Д.) Для выполнения CRUD на ресурсах, предоставляемых вашими Сервисами. Но в REST отсутствуют какие-либо подробности о том, как должны выглядеть URL-адреса, как должны выглядеть форматы запросов / ответов, как запрашивать информацию или на базовом уровне, какие операции и ресурсы служба поддерживает в первую очередь!
В мире веб-сервисов на основе XML у нас есть SOAP, WSDL, WS- *, которые определяют стандарты, обеспечивающие взаимодействие между различными сервисами и их клиентами.
OData пытается сделать это для веб-служб на основе REST.
Он определяет $ metadata в формате CSDL, чтобы объяснить, какие (сущности / сложные) типы поддерживает ваш сервис и их свойства, их типы данных, как связаны ваши типы, и если ваш сервис также поддерживает некоторые специальные операции, выходящие за рамки традиционного CRUD.
OData стандартизирует форматы URL для ваших ресурсов, а именно: / Entity, / Entity ('id') или / Entity (key1 = value1, key2 = value2) ... и так далее ..
OData стандартизирует форматы запросов / ответов в JSON и AtomXml о том, как структурированы данные и их метаданные.
OData также задает очень богатый язык запросов, позволяющий потребителям запрашивать ваши службы для получения точной информации, которую они ищут - с помощью $ filter, $ orderby, $ skip, $ top, $ expand.
OData помогает вам описать всю вашу модель данных - сущности и их отношения, а также поддерживает все виды операций, таких как CREATE, UPDATE, DELETE, GET, MERGE и даже CUSTOM OPERATIONS для этих сущностей и / или отношений.
OData v4 теперь является стандартом OASIS, который имеет множество улучшений по сравнению с более ранними версиями. Экосистема для OData медленно растет.
источник
OData - это стандартное использование REST.
источник