Différence entre OData et REST Web services

En regardant dans certains services web, j'ai rencontré cette" nouvelle " technologie que Microsoft appelle OData . En lisant leur description dans la FAQ sur ce Qu'est OData, j'ai du mal à distinguer OData des services web reposants. Quelqu'un pourrait-il m'aider à comprendre les différences?

174
demandé sur abatishchev 2010-03-17 00:47:02

7 réponses

UPDATE Attention, cette réponse est extrêmement obsolète maintenant Qu'OData V4 est disponible.


J'ai écrit un post sur le sujet il y a quelque temps ici.

Comme Franci l'a dit, OData est basé sur Atom Pub. Cependant, ils ont superposé certaines fonctionnalités et ont malheureusement ignoré certaines des contraintes de repos dans le processus.

La capacité D'interrogation D'un service OData nécessite que vous construisiez des Uri en fonction d'informations non disponibles, ou lié dans la réponse. C'est ce que les gens de repos appellent des informations hors bande et introduit un couplage caché entre le client et le serveur.

L'autre couplage introduit est l'utilisation de métadonnées EDMX pour définir les propriétés contenues dans le contenu de l'entrée. Ces métadonnées peuvent être découvertes à un point de terminaison fixe appelé $metadata. Encore une fois, le client doit le savoir à l'avance, il ne peut pas être découvert.

Malheureusement, Microsoft n'a pas jugé bon de créer types de Médias pour décrire ces éléments clés de données, de sorte que tout client OData doit faire un tas d'hypothèses sur le service qu'il parle et les données qu'il reçoit.

94
répondu Darrel Miller 2018-01-08 11:09:09

Le protocole OData est construit sur le protocole AtomPub. Le protocole AtomPub est l'un des meilleurs exemples de conception D'API REST. Donc, dans un sens, vous avez raison - L'OData est juste une autre API REST et chaque implémentation OData est un service web REST-ful.

La différence est que OData est un protocole spécifique; REST est le style d'architecture et le modèle de conception.

61
répondu Franci Penov 2010-03-16 22:03:59

REST est une technique de conception générique utilisée pour décrire comment un service web peut être consulté. En utilisant REST, vous pouvez faire des requêtes http pour obtenir des données. Si vous l'essayez dans votre navigateur, ce serait comme aller sur un site Web, sauf qu'au lieu de retourner une page web, vous récupéreriez XML. Certains services retourneront également des données au format JSON, plus facile à utiliser avec Javascript.

OData est une technologie spécifique qui expose les données via REST.

Si vous voulez résumer rapidement, pensez de comme:

  • RESTE - conception du modèle
  • OData-technologie habilitante
29
répondu Rush Frisby 2012-02-24 15:25:38

En 2012 OData a subi une standardisation, donc je vais juste ajouter une mise à jour ici..

D'abord les définitions:

REST - est une architecture de la façon d'envoyer des messages via HTTP.

OData v4 - est une implémentation spécifique de REST, définit vraiment le contenu des messages dans différents formats (actuellement je pense que C'est AtomPub et JSON). ODataV4 suit les principes rest.

Par exemple, asp.net les gens utiliseront principalement le contrôleur WebApi pour sérialiser / désérialiser les objets en JSON et faire en sorte que javascript en fasse quelque chose. Le point D'Odata est de pouvoir interroger directement à partir de L'URL avec out-of-the-options de la boîte.

16
répondu tatigo 2017-10-05 21:12:57

De la documentation OData :

Le protocole OData est un protocole au niveau de l'application permettant d'interagir avec des données via des services web RESTful.

...

Le protocole OData est différent des autres approches de service Web basées sur REST en ce sens qu'il fournit une manière uniforme de décrire à la fois les données et le modèle de données.

8
répondu mcanti 2014-05-08 03:23:31

OData (Open Data Protocol) est une norme OASIS qui définit le meilleur pratiquez la construction et la consommation D'API RESTful. OData vous aide concentrez-vous sur votre logique métier tout en construisant des API RESTful sans avoir à se soucier des approches pour définir la demande et la réponse en-têtes, codes d'état, méthodes HTTP, conventions D'URL, types de médias, formats de charge utile et options de requête etc. OData vous guide également sur suivi des modifications, définition des fonctions / actions pour réutilisable procédure et envoyer des demandes asynchrones / batch etc. En Outre, OData fournit la facilité d'extension pour répondre à tous les besoins personnalisés de votre API RESTful.

Les API RESTful OData sont faciles à utiliser. Les métadonnées OData, un description lisible par machine du modèle de données des API, permet la création de puissants proxies et outils clients génériques. Certains de ils peuvent vous aider à interagir avec OData même sans rien savoir sur le protocole. Les 6 étapes démontrer 6 intéressant scénarios de consommation OData sur différentes plates-formes de programmation. Mais si vous êtes un non-développeur et souhaitez simplement jouer avec les OData, XOData est le meilleur départ pour vous.

Pour plus de détails à http://www.odata.org/

3
répondu RajeshVerma 2016-01-19 19:48:03

ODATA est un type spécial de RESTE où nous pouvons requête de données de manière uniforme à partir de l'URL.

1
répondu Minh Nguyen 2016-02-22 11:49:06