En quoi oData est-il différent d'un service REST?

15

Je cherche à écrire une API de service Web et je pense à créer un service REST. Que signifie OData dans ce contexte? Pouvez-vous expliquer la différence entre OData et REST?

gyurisc
la source
voir: odata.org
NoChance

Réponses:

11

REST est une architecture qui explique comment envoyer des messages entre un client et un serveur en utilisant HTTP. OData est une norme défendue par Microsoft qui utilise une architecture REST pour envoyer des types particuliers de messages via HTTP. OData parle de l'apparence des messages (le contenu). REST est l'architecture de la façon dont ces messages sont envoyés dans les deux sens.

RationalGeek
la source
5

Je suis d'accord avec @jkohlhepp et @Tom Squires, mais j'ajouterai quelques détails.

OData est un standard ouvert (défendu par Microsoft, mais adopté au-delà de Microsoft, et disponible pour de nombreuses plateformes, y compris iOS et Android).

Les charges utiles OData sont basées sur le format Atom (lecture) et AtomPub (mise à jour). (Soit dit en passant, Atom est également la base d'un format de flux RSS populaire.) Atom est extensible, et OData en a profité pour créer des extensions bien connues. Par exemple, avec un service OData, il existe des conventions URI avec de nombreuses fonctionnalités, telles que le filtrage (filtrer par date ou nom du client) et le tri, etc. L'utilisation de ces conventions spéciales d'une manière standard (définie par OData) rend OData puissant car ils agissent de manière similaire et nous pouvons créer des outils pour travailler contre eux et autres.

Il existe des sources OData bien connues, comme par Netflix (toutes leurs données de film sont là - peut être amusant de jouer avec!).

Lisez tout sur OData sur odata.org .

Bonne chance! -Facture

codage
la source
4

REST est un style architectural de construction de services Web. C'est juste un modèle qui dit que vous pouvez utiliser HTTP et ses verbes (POST / PUT / GET etc.) pour effectuer CRUD sur les ressources exposées par vos services. Mais REST manque de détails sur la façon dont les URL devraient ressembler, comment les formats de demande / réponse devraient ressembler, comment interroger les informations ou à un niveau de base quelles opérations et ressources un service prend en charge en premier lieu!

Dans le monde des services Web basés sur XML, nous avons SOAP, WSDL, WS- * qui définissent les normes qui permettent l'interopérabilité entre divers services et leurs clients.

OData essaie de le faire pour les services Web basés sur REST.

Il définit les métadonnées $ au format CSDL pour expliquer quels types (entité / complexe) votre service prend en charge et leurs propriétés, leurs types de données, comment sont vos types liés et si votre service prend également en charge certaines opérations spéciales au-delà du CRUD traditionnel.

OData standardise les formats d'URL pour vos ressources, à savoir / Entity, / Entity ('id') ou / Entity (key1 = value1, key2 = value2) ... et ainsi de suite ..

OData standardise les formats de demande / réponse en JSON et AtomXml sur la façon dont les données et leurs métadonnées sont structurées.

OData spécifie également un langage de requête très riche pour permettre aux consommateurs d'interroger vos services sur les informations précises qu'ils recherchent - à l'aide de $ filter, $ orderby, $ skip, $ top, $ expand.

OData vous aide à décrire l'intégralité de votre modèle de données - Entités et leurs relations et prend en charge toutes sortes d'opérations comme CREATE, UPDATE, DELETE, GET, MERGE et même des OPÉRATIONS PERSONNALISÉES sur ces entités et / ou relations.

OData v4 est désormais une norme OASIS qui apporte de nombreuses améliorations par rapport à ses versions antérieures. L'écosystème pour OData se développe lentement.

Anil G
la source
2

OData est un standard implémenté à l'aide de REST.

Tom Squires
la source