Al buscar en algunos servicios web, encontré esta "nueva" tecnología que Microsoft llama al OData. 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?Diferencia entre los servicios web OData y REST
Respuesta
ACTUALIZACIÓN Advertencia, esta respuesta está muy desactualizada ahora que OData V4 está disponible.
escribí un post 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 basados en 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.
Desafortunadamente, Microsoft no consideró apropiado crear tipos de medios para describir estos datos clave, por lo que cualquier cliente OData tiene que hacer una serie de suposiciones sobre el servicio con el que está hablando y los datos que recibe.
su enlace está roto :(www.bizcoder.com/index.php/2009/11/30/oh-data/ – felickz
@felickz Disculpe por eso. estaba teniendo problemas de DNS. Debería estar funcionando ahora. O lo estará cuando su caché dns expire. –
esta respuesta podría estar desactualizada ahora ... ya que el cliente no solo es microsoft y menciona edmx solo si utiliza un entorno .net – sksallaj
El protocolo OData se basa en 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.
Podría estar equivocado en esto (recién comencé a aprender sobre odata), pero a partir de la versión 3 del [protocolo] [http://www.odata.org/documentation] aparece también hay un formato JSON especificado, que usted puede usar alternativamente ¿Puedes arrojar algo de luz sobre esto? –
@JohannesRudolph, sinceramente, no tengo ni idea. No he mirado a OData en los últimos dos años. Pero es bastante probable que Microsoft haya agregado compatibilidad con JSON. Sin embargo, tenga en cuenta que esto de ninguna manera cambia ninguna de las respuestas aquí. JSON vs XML es solo una cuestión de presentación de los recursos REST. –
Puede especificar en la solicitud qué formato le gustaría tener. XML y JSON deben ser compatibles con la mayoría de las implementaciones, por ej. configurando el encabezado Aceptar en la aplicación/json (comenzando desde la versión 2 de OData) – i000174
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 desea resumir muy rápido, pensar en ella como:
- RESTO - patrón de diseño
- OData - tecnología que permite
Desde el OData documentation:
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.
En 2012 se sometió a OData de normalización, por lo que voy a añadir una actualización aquí ..
En primer lugar las definiciones:
RESTO - 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 en su mayoría utilizarán el controlador WebApi para serializar/deserializar objetos en JSON y hacer que javascript haga algo con ellos. El objetivo de Odata es poder consultar directamente desde la URL con opciones listas para usar.
OData (Protocolo de datos abiertos) es un estándar OASIS que define la mejor práctica para compilar y consumir API RESTful. OData lo ayuda concéntrese en su lógica empresarial mientras construye API RESTful sin teniendo que preocuparse por los enfoques para definir encabezados de solicitud y respuesta , códigos de estado, métodos HTTP, convenciones URL, tipos de medios, formatos de carga útil y opciones de consulta, etc. también lo guía sobre realizando un seguimiento de los cambios, definiendo funciones/acciones para los procedimientos reutilizables y enviando solicitudes asincrónicas/por lotes, etc. Además, OData proporciona la posibilidad de una extensión para satisfacer cualquier necesidad personalizada de sus API RESTful.
OData Las API RESTful son fáciles de consumir. Los metadatos de OData, una descripción legible por máquina del modelo de datos de las API, habilitan para la creación de herramientas y proxies de clientes genéricos poderosos. Algunos de ellos pueden ayudarle a interactuar con OData incluso sin saber nada sobre el protocolo. Los siguientes 6 pasos demuestran 6 escenarios interesantes de del consumo de OData en diferentes plataformas de programación. Pero si no eres desarrollador y solo te gustaría jugar con OData, XOData es el mejor comienzo para ti.
para más detalles al http://www.odata.org/
odata es un tipo especial de RESTO donde podemos datos de consulta de manera uniforme de URL.
- 1. diferencia entre los servicios web y aplicaciones web
- 2. ¿Comparar y contrastar los servicios web REST y SOAP?
- 3. Autenticación de los servicios web WCF Rest.
- 4. diferencia entre WCF Services y Web Services y REST Service
- 5. Diferencia entre REST y WebServices
- 6. diferencia entre servicios y receptores de difusión
- 7. Servicios web REST: Symfony 2 vs silex
- 8. REST y servicios web: tiene problemas para entenderlos
- 9. ¿Cuál es la diferencia entre la API y los servicios web?
- 10. Diferencia entre ASP.NET MVC 4 Web Api y REST classic services
- 11. servicios web, aplicación web
- 12. OData y distinción entre mayúsculas y minúsculas
- 13. WCF Dataservices y OData
- 14. ¿Qué son los servicios web RESTful?
- 15. Patrones para manejar operaciones por lotes en servicios web REST?
- 16. ¿Servicios web por contrato?
- 17. Exponer datos de los servicios de WCF como oData
- 18. ¿Cómo asegurar los servicios web RESTful?
- 19. ¿Cuál es la diferencia con WCF y otros servicios web?
- 20. ¿Cómo elijo entre los servicios WCF, REST, POX y RIA para una nueva aplicación Silverlight?
- 21. Llamar a servicios web REST desde una página asp clásica
- 22. Marcos más fáciles de implementar servicios web REST de Java
- 23. REST Servicios web usando MVC, ¿es una buena idea?
- 24. SOAP/REST Servicios web Sensibilidad XML de la caja
- 25. Diferencia entre JMS y servicio web
- 26. ¿Cómo descubro los servicios web RESTful?
- 27. Compartir una enumeración entre los servicios web de ASMX
- 28. Diferencia entre diseñador web, desarrollador web y programador web
- 29. ¿Guía para elegir entre servicios REST vs SOAP?
- 30. Diferencia entre "COM" tradicional y COM + (en servicios de componentes)
Uno es productor, el otro es habilitador para los consumidores. – Kangkan