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?
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!).
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.
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.
fuente
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
fuente
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.
fuente
OData es un estándar implícito usando REST.
fuente