Question

En examinant certains services Web, je suis tombé sur 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-ful.Quelqu'un pourrait-il m'aider à comprendre les différences ?

Était-ce utile?

La solution

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 un moment ici .

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

La capacité d'interrogation d'un service OData vous oblige à construire des URIs en fonction des informations qui ne sont pas disponibles, ou lié à la réponse. Il est ce que les gens appellent REST informations hors bande et introduit le couplage caché entre le client et le serveur.

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

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

Autres conseils

Le protocole OData est construit sur le dessus du protocole AtomPub. Le protocole AtomPub est l'un des meilleurs exemples de la conception de l'API REST. Donc, dans un sens, vous avez raison - le 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 un style d'architecture et design pattern.

REST est une technique de conception générique utilisé pour décrire la façon d'accéder un service Web. En utilisant REST, vous pouvez faire des requêtes http pour obtenir des données. Si vous essayez dans votre navigateur, il serait comme aller à un site Web, sauf au lieu de retourner une page Web que vous retrouverais XML. Certains services seront également renvoyer des données au format JSON qui est plus facile à utiliser avec Javascript.

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

Si vous voulez résumer vite fait, penser comme:

  • REST - design pattern
  • OData - technologie habilitante

En 2012 OData a subi la normalisation, 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 sur 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 gens qu'ASP.NET principalement utiliser le contrôleur de WebAPI à linéariser / objets délinéariser en JSON et ont le javascript faire quelque chose avec elle. Le point de OData est de pouvoir interroger directement à partir de l'URL avec out-of-the-box options.

De la OData documentation :

  

Le protocole OData est un protocole de niveau d'application pour interagir avec des données via des services Web REST.

     

...

     

Le protocole OData est différent de tout autre service web REST approche en ce sens qu'il offre un moyen uniforme de décrire à la fois les données et le modèle de données.

ODATA est un type spécial de REST où nous pouvons données requête uniformément URL.

  

OData (Open Data Protocol) est une norme OASIS qui définit le mieux   pratique pour la construction et la consommation des API RESTful. OData vous aide   se concentrer sur votre logique métier tout en construisant des API RESTful sans   avoir à se soucier des approches de définir demande et la réponse   têtes, codes d'état, les méthodes HTTP, conventions d'URL, les types de médias,   formats de charge utile et options de requête, etc. OData vous guide aussi sur les   le suivi des changements, la définition des tâches / actions pour les procédures réutilisables   et l'envoi de requêtes asynchrones / batch, etc. De plus, OData   fournit le service d'extension pour satisfaire tous les besoins personnalisés de votre   API RESTful.

     

OData API RESTful sont faciles à consommer. Les métadonnées OData, un   Description lisible par machine du modèle de données de l'API, permet   la création de puissants serveurs proxy client et outils génériques. Une partie de   pouvez-vous les aider à interagir avec OData même sans savoir quoi que ce soit   sur le protocole. Les 6 étapes suivantes montrent 6 intéressantes   scénarios de consommation OData sur différentes plates-formes de programmation.   Mais si vous êtes un non-développeur et que vous souhaitez simplement jouer avec   OData, XOData est le meilleur départ pour vous.

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

REPOS représente CONCERNANTprésentation Sétat Transfer 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 bonnes pratiques pour créer et utiliser des services Web RESTful.OData est un moyen de créer des services Web RESTful, donc une implémentation de REST.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top