web-dev-qa-db-fra.com

Différence entre les services Web OData et REST

En cherchant dans certains services Web, j'ai découvert cette "nouvelle" technologie que Microsoft appelle OData . En lisant leur description dans la FAQ sur ce qu'est OData, j'ai de la difficulté à distinguer OData des services Web REST-ful. Quelqu'un pourrait-il m'aider à comprendre les différences?

192
Scott

UPDATE Attention, cette réponse est extrêmement obsolète maintenant que 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, certaines fonctionnalités ont été superposées et malheureusement, certaines des contraintes REST du processus ont été ignorées.

La capacité d'interrogation d'un service OData vous oblige à construire des URI en fonction d'informations non disponibles ou liées à la réponse. C’est ce que REST personnes appelle des informations hors bande et introduit un couplage caché entre le client et le serveur.

L'autre couplage introduit consiste à utiliser les 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é $ 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 support pour décrire ces éléments de données clés. Par conséquent, tout client OData doit émettre de nombreuses hypothèses sur le service avec lequel il parle et les données qu'il reçoit.

95
Darrel Miller

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 n'est qu'un autre API REST et chaque implémentation d'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 motif de conception.

62
Franci Penov

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 si vous alliez sur un site Web, mais au lieu de renvoyer une page Web, vous récupériez XML. Certains services renverront é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 résumer très rapidement, pensez-y:

  • REST - design pattern
  • OData - technologie habilitante
30
Rush Frisby

En 2012, OData a été normalisé, je vais donc simplement ajouter une mise à jour ici.

D'abord les définitions:

RESTE - est une architecture permettant 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, 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 laisser javascript faire quelque chose avec. Le but d’Odata est de pouvoir interroger directement à partir de l’URL avec des options prêtes à l’emploi.

19
tatigo

Depuis l'OData documentation :

Le protocole OData est un protocole d'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 qu'il fournit un moyen uniforme de décrire à la fois les données et le modèle de données.

9
mcanti

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

4
Minh Nguyen

OData (Open Data Protocol) est une norme OASIS qui définit les meilleures pratiques pour la création et l'utilisation d'API RESTful. OData vous aide à vous concentrer sur votre logique métier lors de la création d'API RESTful sans vous soucier des approches permettant de définir des en-têtes de demande et de réponse, des codes d'état, des méthodes HTTP, des conventions d'URL, des types de support, des formats de charge utile et des options de requête, etc. OData vous guide également suivi des modifications, définition des fonctions/actions pour les procédures réutilisables et envoi de requêtes asynchrones/par lots, etc. OData permet en outre une extension permettant de répondre à tous les besoins personnalisés de vos API RESTful.

Les API OData RESTful sont faciles à consommer. Les métadonnées OData, une description lisible par la machine du modèle de données des API, permettent la création de puissants proxy et outils client génériques. Certains d'entre eux peuvent vous aider à interagir avec OData même sans rien connaître du protocole. Les 6 étapes suivantes présentent 6 scénarios intéressants de consommation d'OData sur différentes plateformes de programmation. Mais si vous êtes un non-développeur et souhaitez simplement jouer avec OData, XOData est le meilleur départ pour vous.

pour plus de détails sur http://www.odata.org/

3
RajeshVerma

RESTE signifie RE présentation S tate T transfert qui est une ressource style architectural. 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 pratiques recommandées pour la création et la consommation de services Web RESTful. OData est un moyen de créer des services Web RESTful et donc une implémentation de REST.

2
Ishara