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

13

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

    
pregunta gyurisc 17.10.2011 - 15:06

4 respuestas

11

REST es una arquitectura sobre cómo enviar y recibir mensajes de un cliente a un servidor mediante HTTP. OData es un estándar defendido por Microsoft que usa 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 esos mensajes se envían de un lado a otro.

    
respondido por el RationalGeek 17.10.2011 - 16:33
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, incluyendo iOS y Android).

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

Hay algunas fuentes de OData bien conocidas disponibles, como 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! -Bill

    
respondido por el codingoutloud 19.02.2012 - 04:53
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 deben ser las URL, cómo deben ser 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á intentando 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 que los consumidores consulten sus servicios para obtener la información precisa que buscan, con la ayuda de $ filter, $ orderby, $ skip, $ top, $ expand.

OData lo ayuda a describir su modelo de datos completo - Entidades y sus relaciones y respalda todo tipo de operaciones como CREAR, ACTUALIZAR, BORRAR, OBTENER MERGE e incluso OPERACIONES PERSONALIZADAS en estas Entidades y / o Relaciones.

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

    
respondido por el Anil G 18.07.2014 - 15:14
2

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

    
respondido por el Tom Squires 17.10.2011 - 15:15

Lea otras preguntas en las etiquetas