Mientras buscaba en algunos servicios web, me encontré con esta "nueva" tecnología que Microsoft llama OData . Al leer su descripción en las Preguntas frecuentes sobre qué es OData, me cuesta distinguir OData de los servicios web REST-ful. ¿Podría alguien ayudarme a entender las diferencias?
web-services
rest
odata
Scott
fuente
fuente
Respuestas:
ACTUALIZACIÓN Advertencia, esta respuesta está extremadamente desactualizada ahora que OData V4 está disponible.
Escribí una publicación sobre el tema hace un tiempo aquí .
Como dijo Franci, OData se basa en Atom Pub. Sin embargo, han superpuesto algunas funcionalidades y desafortunadamente han ignorado algunas de las restricciones REST en el proceso.
La capacidad de consulta de un servicio OData requiere que usted construya URI basados en información que no está disponible o vinculada en 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 mediante el 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 se puede descubrir.
Desafortunadamente, Microsoft no consideró adecuado crear tipos de medios para describir estos datos clave, por lo que cualquier cliente de OData tiene que hacer un montón de suposiciones sobre el servicio con el que está hablando y los datos que está recibiendo.
fuente
El protocolo OData se basa en el protocolo AtomPub. El protocolo AtomPub es uno de los mejores ejemplos de 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 estilo de arquitectura y patrón de diseño.
fuente
REST es una técnica de diseño genérico utilizada para describir cómo se puede acceder a un servicio web. Usando REST puede hacer solicitudes http para obtener datos. Si lo prueba en su navegador, sería como ir a un sitio web, excepto que en lugar de devolver una página web, obtendría 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 desea resumirlo muy rápido, piense en ello como:
fuente
En 2012, OData se sometió a estandarización, así que solo agregaré una actualización aquí ...
Primero las definiciones:
DESCANSO : 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, la gente de asp.net usará principalmente el controlador WebApi para serializar / deserializar objetos en JSON y hacer que JavaScript haga algo con él. El objetivo de Odata es poder realizar consultas directamente desde la URL con opciones listas para usar.
fuente
De la documentación de OData :
fuente
para más detalles en http://www.odata.org/
fuente
ODATA es un tipo especial de REST donde podemos consultar datos de manera uniforme desde la URL.
fuente
REST significa RE presentational S tate T ransfer, que es un estilo arquitectónico basado en recursos. Basado en recursos significa que los datos y las funcionalidades se consideran recursos.
OData es un protocolo basado en web que define un conjunto de mejores prácticas para construir y consumir servicios web RESTful. OData es una forma de crear servicios web RESTful, por lo tanto, una implementación de REST.
fuente