¿En qué se diferencia oData de un servicio REST?

15

Estoy pensando en escribir una API de servicio web y estoy pensando en crear un servicio REST. ¿Qué significa OData en este contexto? ¿Puede explicar la diferencia entre OData y REST?

gyurisc
fuente
ver: odata.org
NoChance

Respuestas:

11

REST es una arquitectura sobre cómo enviar mensajes de un cliente a otro mediante HTTP. OData es un estándar defendido por Microsoft que utiliza una arquitectura REST para enviar tipos particulares de mensajes a través de HTTP. OData habla sobre cómo se ven los mensajes (el contenido). REST es la arquitectura de cómo se envían esos mensajes de ida y vuelta.

RationalGeek
fuente
5

Estoy de acuerdo con @jkohlhepp y @Tom Squires, aunque agregaré un par de detalles.

OData es un estándar abierto (defendido por Microsoft, pero adoptado más allá de Microsoft, y disponible para muchas plataformas, incluidos iOS y Android).

Las cargas útiles de OData se basan en el formato Atom (lectura) y AtomPub (actualización). (Por otro lado, Atom también es la base de un formato de fuente RSS popular). Atom es extensible y OData ha aprovechado esto para crear extensiones bien conocidas. Por ejemplo, con un servicio OData hay convenciones de URI con muchas capacidades, como el filtrado (filtro por fecha o nombre del cliente) y la clasificación, etc. El uso de estas convenciones especiales en una forma estándar (definida por OData) hace que OData sea potente, ya que actúan de manera similar y podemos construir herramientas para trabajar en su contra y tal.

Hay algunas fuentes conocidas de OData disponibles, como por ejemplo Netflix (todos sus datos de películas están ahí, ¡puede ser divertido jugar con ellos!).

Lea todo sobre OData en odata.org .

¡Buena suerte! -Cuenta

codingoutloud
fuente
4

REST es un estilo arquitectónico de construcción de servicios web. Es solo un modelo que dice que podría usar HTTP y sus verbos (POST / PUT / GET, etc.) para realizar CRUD en los recursos expuestos por sus servicios. Pero REST carece de detalles sobre cómo deberían verse las URL, cómo deberían verse los formatos de solicitud / respuesta, cómo consultar información o, en un nivel básico, qué operaciones y recursos admite un servicio en primer lugar.

En el mundo de los servicios web basados ​​en XML, tenemos SOAP, WSDL, WS- * que definen los estándares que permiten la interoperabilidad entre varios servicios y sus clientes.

OData está tratando de hacer esto para los servicios web basados ​​en REST.

Define $ metadata en formato CSDL para explicar qué tipos (entidad / complejo) admite su servicio y sus propiedades, sus tipos de datos, cómo están relacionados sus tipos y si su servicio también admite algunas operaciones especiales más allá del CRUD tradicional.

OData estandariza los formatos de URL para sus recursos a saber, / Entity, / Entity ('id') o / Entity (key1 = value1, key2 = value2) ... y así sucesivamente.

OData estandariza los formatos de solicitud / respuesta en JSON y AtomXml sobre cómo se estructuran los datos y sus metadatos.

OData también especifica un lenguaje de consulta muy rico para permitir a los consumidores consultar sus servicios para obtener la información precisa que están buscando, con la ayuda de $ filter, $ orderby, $ skip, $ top, $ expand.

OData lo ayuda a describir todo su Modelo de datos: entidades y sus relaciones, y respalda todo tipo de operaciones como CREAR, ACTUALIZAR, ELIMINAR, OBTENER, COMBINAR e incluso OPERACIONES PERSONALIZADAS en estas Entidades y / o Relaciones.

OData v4 es ahora un estándar OASIS que ofrece muchas mejoras además de sus versiones anteriores. El ecosistema de OData está creciendo lentamente.

Anil G
fuente
2

OData es un estándar implícito usando REST.

Tom Squires
fuente