web services - example - Diferencia entre los servicios web de OData y REST
odata wikipedia (7)
OData (Open Data Protocol) es un estándar OASIS que define la mejor práctica para construir y consumir API RESTful. OData lo ayuda a enfocarse en su lógica empresarial mientras construye API RESTful sin tener que preocuparse por los enfoques para definir encabezados de solicitud y respuesta, códigos de estado, métodos HTTP, convenciones de URL, tipos de medios, formatos de carga y opciones de consulta, etc. OData también lo guía sobre seguimiento de cambios, definición de funciones / acciones para procedimientos reutilizables y envío de solicitudes asincrónicas / por lotes, etc. Además, OData proporciona la facilidad para la extensión para satisfacer cualquier necesidad personalizada de sus API RESTful.
Las API RESTful de OData son fáciles de consumir. Los metadatos de OData, una descripción legible por máquina del modelo de datos de las API, permiten la creación de potentes proxies y herramientas de clientes genéricos. Algunos de ellos pueden ayudarlo a interactuar con OData incluso sin saber nada sobre el protocolo. Los siguientes 6 pasos demuestran 6 escenarios interesantes de consumo de OData en diferentes plataformas de programación. Pero si no eres desarrollador y te gustaría simplemente jugar con OData, XOData es el mejor comienzo para ti.
para más detalles en http://www.odata.org/
Al buscar en algunos servicios web, encontré esta "nueva" tecnología que Microsoft llama http://www.odata.org/ . Al leer su descripción dentro de las preguntas más frecuentes sobre qué es OData, me está resultando difícil distinguir OData de los servicios web REST-ful. ¿Podría alguien ayudarme a entender las diferencias?
De la documentation OData:
El protocolo OData es un protocolo de nivel de aplicación para interactuar con datos a través de servicios web RESTful.
...
El protocolo OData es diferente de otros enfoques de servicios web basados en REST, ya que proporciona una manera uniforme de describir los datos y el modelo de datos.
El protocolo OData está construido sobre el protocolo AtomPub. El protocolo AtomPub es uno de los mejores ejemplos del diseño de API REST. Entonces, en cierto sentido, tiene razón: OData es solo otra API REST y cada implementación de OData es un servicio web REST-ful.
La diferencia es que OData es un protocolo específico; REST es el estilo de arquitectura y el patrón de diseño.
En 2012, OData se estandarizó, así que solo agregaré una actualización aquí.
Primero las definiciones:
REST : es una arquitectura de cómo enviar mensajes a través de HTTP.
OData V4 : es una implementación específica de REST, realmente define el contenido de los mensajes en diferentes formatos (actualmente creo que es AtomPub y JSON). ODataV4 sigue los principios de descanso.
Por ejemplo, las personas asp.net usarán principalmente el controlador WebApi para serializar / deserializar objetos en JSON y hacer que javascript haga algo con él. El objetivo de Odata es poder consultar directamente desde la URL con opciones listas para usar.
REST es una técnica de diseño genérico que se utiliza para describir cómo se puede acceder a un servicio web. Al utilizar REST, puede realizar solicitudes http para obtener datos. Si lo intentas en tu navegador, sería como ir a un sitio web, pero en lugar de devolver una página web, recibirías XML. Algunos servicios también devolverán datos en formato JSON, que es más fácil de usar con Javascript.
OData es una tecnología específica que expone datos a través de REST.
Si quiere resumirlo rápidamente, piense en ello como:
- REST - patrón de diseño
- OData - tecnología habilitadora
ACTUALIZACIÓN Advertencia, esta respuesta está muy desactualizada ahora que OData V4 está disponible.
Escribí una publicación sobre el tema hace un tiempo here .
Como dijo Franci, OData se basa en Atom Pub. Sin embargo, han acumulado algunas funcionalidades en la parte superior y desafortunadamente han ignorado algunas de las restricciones de REST en el proceso.
La capacidad de consulta de un servicio OData requiere que construya URI en función de información que no está disponible o vinculada a la respuesta. Es lo que las personas REST llaman información fuera de banda e introduce un acoplamiento oculto entre el cliente y el servidor.
El otro acoplamiento que se introduce es a través del uso de metadatos EDMX para definir las propiedades contenidas en el contenido de la entrada. Estos metadatos se pueden descubrir en un punto final fijo llamado $ metadata. Nuevamente, el cliente necesita saber esto de antemano, no puede ser descubierto.
Lamentablemente, Microsoft no consideró apropiado crear tipos de medios para describir estos datos clave, por lo que cualquier cliente de OData debe hacer una serie de suposiciones sobre el servicio con el que está hablando y los datos que recibe.
ODATA es un tipo especial de REST en el que podemos consultar datos de manera uniforme desde la URL.