Respuestas:
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.
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
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.
OData es un estándar implícito usando REST.