Quelle est la différence entre OData et des services web de type REST ?
Votre lien est cassé :( www.bizcoder.com/index.php/2009/11/30/oh-data/
Quelle est la différence entre OData et des services web de type REST ?
UPDATE 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. aquí .
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 REST dans le processus.
La capacité d'interrogation d'un service OData vous oblige à construire des URI sur la base d'informations qui ne sont pas disponibles ou liées à la réponse. C'est ce que les gens de REST appellent l'information hors bande et introduit un couplage caché entre le client et le serveur.
L'autre couplage qui est introduit est l'utilisation des 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. Là encore, le client doit les connaître à l'avance, elles ne peuvent pas être découvertes.
Malheureusement, Microsoft n'a pas jugé bon de créer des types de médias pour décrire ces éléments de données essentiels, de sorte que tout client OData doit faire un tas d'hypothèses sur le service auquel il s'adresse et sur les données qu'il reçoit.
@felickz Désolé pour ça. J'ai eu des problèmes de DNS. Cela devrait fonctionner maintenant. Ou le sera lorsque votre cache DNS expirera.
Cette réponse peut être dépassée maintenant car le client n'est pas seulement microsoft et mentionne edmx seulement si vous utilisez un environnement .net
Le protocole OData est construit sur le protocole AtomPub. Le protocole AtomPub est l'un des meilleurs exemples de conception d'API REST. Dans un sens, vous avez donc raison : OData n'est qu'une autre API REST et chaque mise en œuvre d'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 modèle de conception.
Je peux me tromper (je viens de commencer à me familiariser avec les odata), mais à partir de la version 3 du [protocole][[ ]. [odata.org/documentation]](http://www.odata.org/documentation]) il semble qu'il existe également un format JSON spécifié, que vous pouvez utiliser comme alternative. Pouvez-vous nous éclairer à ce sujet ?
@JohannesRudolph, honnêtement, je n'en ai aucune idée. Je n'ai pas regardé OData au cours des deux dernières années. Mais il est tout à fait probable que Microsoft aurait ajouté le support JSON. Notez cependant que cela ne change en rien les réponses données ici. JSON vs XML est juste une question de présentation des ressources REST.
REST est une technique de conception générique utilisée pour décrire la manière dont on peut 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, c'est comme si vous alliez sur un site Web, sauf qu'au lieu de renvoyer une page Web, vous recevriez du XML. Certains services renvoient é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 le résumer rapidement, pensez-y comme suit :
En 2012, OData a fait l'objet d'une normalisation, donc je vais juste ajouter une mise à jour ici .
D'abord les définitions :
REST - est une architecture de la manière d'envoyer des messages sur HTTP.
OData V4 - est une implémentation spécifique de REST, qui définit réellement le contenu des messages dans différents formats (actuellement, je pense que c'est AtomPub et JSON). ODataV4 suit les principes de REST.
Par exemple, les utilisateurs d'asp.net utiliseront principalement le contrôleur WebApi pour sérialiser/désérialiser des objets en JSON et faire en sorte que javascript en fasse quelque chose. L'intérêt d'Odata est de pouvoir effectuer des requêtes directement depuis l'URL avec avec des options prêtes à l'emploi.
Depuis l'OData documentation :
Le protocole OData est un protocole de niveau application permettant d'interagir avec les données via des services web RESTful.
...
Le protocole OData se distingue des autres approches de services 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.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
L'un est producteur, l'autre est un facilitateur pour les consommateurs.