En examinant 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 REST. Quelqu'un pourrait-il m'aider à comprendre les différences?
web-services
rest
odata
Scott
la source
la source
Réponses:
MISE À JOUR Attention, cette réponse est extrêmement obsolète maintenant que OData V4 est disponible.
J'ai écrit un article sur le sujet il y a quelque temps ici .
Comme l'a dit Franci, OData est basé sur Atom Pub. Cependant, ils ont superposé certaines fonctionnalités et ont malheureusement ignoré certaines des contraintes REST dans le processus.
La capacité d'interrogation d'un service OData vous oblige à construire des URI basés sur des informations qui ne sont pas disponibles ou liées à dans la réponse. C'est ce que les gens REST 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 d'entrée. Ces métadonnées peuvent être découvertes à un point de terminaison fixe appelé $ métadonnées. Encore une fois, le client doit le savoir à l'avance, cela ne peut pas être découvert.
Malheureusement, Microsoft n'a pas jugé bon de créer des types de médias pour décrire ces éléments clés de données, donc tout client OData doit faire un tas d'hypothèses sur le service auquel il parle et les données qu'il reçoit.
la source
Le protocole OData est construit au-dessus du 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 n'est qu'une autre API REST et chaque implémentation OData est un service Web REST.
La différence est que OData est un protocole spécifique; REST est un style d'architecture et un motif de conception.
la source
REST est une technique de conception générique utilisée pour décrire comment accéder à un service Web. 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, mais au lieu de renvoyer une page Web, vous récupérerez XML. Certains services renvoient également des données au format JSON qui est plus facile à utiliser avec Javascript.
OData est une technologie spécifique qui expose les données via REST.
Si vous voulez le résumer très rapidement, pensez-y comme:
la source
En 2012, OData a subi une normalisation, je vais donc simplement 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 de repos.
Par exemple, les personnes asp.net utiliseront principalement le contrôleur WebApi pour sérialiser / désérialiser des objets en JSON et demander à javascript de faire quelque chose avec. Le point d'Odata est de pouvoir interroger directement à partir de l'URL avec des options prêtes à l'emploi.
la source
De la documentation OData :
la source
pour plus de détails sur http://www.odata.org/
la source
ODATA est un type spécial de REST où nous pouvons interroger les données uniformément à partir de l'URL.
la source
REST signifie RE presentational S tate T ransfer qui est un style architectural basé sur les ressources. Basé sur les ressources signifie que les données et les fonctionnalités sont considérées comme des ressources.
OData est un protocole Web qui définit un ensemble de meilleures pratiques pour la création et la consommation de services Web RESTful. OData est un moyen de créer des services Web RESTful donc une implémentation de REST.
la source