Domanda

Mentre esaminavo alcuni servizi Web, mi sono imbattuto in questa "nuova" tecnologia che Microsoft chiama OData.Leggendo la loro descrizione all'interno delle Domande frequenti su cosa sia OData, ho difficoltà a distinguere OData dai servizi Web REST.Qualcuno potrebbe aiutarmi a capire le differenze?

È stato utile?

Soluzione

Aggiorna Attenzione, questa risposta è estremamente fuori di data, ora che OData V4 è disponibile.


ho scritto un post su questo argomento qualche tempo fa qui .

Come ha detto Franci, OData è basata su Atom Pub. Tuttavia, essi hanno a strati alcune funzionalità sulla parte superiore e purtroppo hanno ignorato alcuni dei vincoli riposo in processo.

La capacità di interrogazione di un servizio OData richiede di costruire URI sulla base di informazioni che non sono disponibili, o sono legati al nella risposta. E 'quello che la gente chiama REST informazioni out-of-band e introduce accoppiamento nascosta tra il client e il server.

L'altro accoppiamento che viene introdotto è attraverso l'uso di metadati EDMX per definire le proprietà contenute nel contenuto voce. Questi metadati possono essere scoperto a un endpoint fisso chiamato $ metadati. Anche in questo caso, il cliente ha bisogno di sapere in anticipo, non può essere scoperto.

Purtroppo, Microsoft non ha ritenuto opportuno per creare tipi di media per descrivere questi pezzi chiave di dati, in modo da qualsiasi client OData deve fare un po 'di ipotesi circa il servizio che si sta parlando ei dati che sta ricevendo.

Altri suggerimenti

Il protocollo OData è costruito in cima al protocollo AtomPub. Il protocollo AtomPub è uno dei migliori esempi di design REST API. Quindi, in un certo senso hai ragione - l'OData è solo un altro API REST e ogni implementazione OData è un servizio Web REST-ful

.

La differenza è che OData è un protocollo specifico; REST è architettura in stile e design pattern.

REST è una tecnica di progettazione generico usato per descrivere come un servizio web è possibile accedere. Usando REST è possibile effettuare richieste HTTP per ottenere i dati. Se lo provate nel tuo browser sarebbe proprio come andare a un sito web, tranne invece di restituire una pagina web si otterrebbe indietro XML. Alcuni servizi saranno anche restituire i dati in formato JSON che è più facile da usare con JavaScript.

OData è una tecnologia specifica che espone i dati attraverso il riposo.

Se si vuole riassumere reale veloce, pensare ad esso come:

  • REST - design pattern
  • OData - tecnologia abilitante

Nel 2012 subì OData standardizzazione, quindi mi limiterò a aggiungere un aggiornamento qui ..

Per prima le definizioni:

REST - è un'architettura di come inviare messaggi tramite HTTP.

OData V4 - è una specifica implementazione di riposo, definisce in realtà il contenuto dei messaggi in diversi formati (attualmente credo sia AtomPub e JSON). ODataV4 segue i principi di riposo.

Per esempio, ASP.NET la gente per lo più utilizzare controller di WebAPI per serializzare / deserializzare oggetti in JSON e javascript fare qualcosa con esso. Il punto di OData è essere in grado di interrogare direttamente dall'URL con out-of-the-box opzioni.

Dal OData documentazione :

  

Il protocollo OData è un protocollo a livello di applicazione per l'interazione con i dati tramite servizi web RESTful.

     

...

     

Il protocollo OData è diverso da altri servizi web REST-based approcci in quanto fornisce un modo uniforme per descrivere sia i dati che il modello di dati.

ODATA è un tipo speciale di RIPOSO dove possiamo interrogare i dati in modo uniforme dall'URL.

  

OData (Open Data Protocol) è uno standard OASIS che definisce il migliore   pratica per la costruzione e consumare le API RESTful. OData ti aiuta   concentrarsi sulla logica di business, mentre la costruzione RESTful API senza   doversi preoccupare gli approcci per definire richiesta e risposta   intestazioni, codici di stato HTTP, i metodi, le convenzioni URL, tipi di media,   carico utile formati e opzioni di query, ecc OData si guida anche su   il rilevamento delle modifiche, le funzioni di definizione / azioni per le procedure riutilizzabili   e l'invio di richieste asincrone / lotto ecc Inoltre, OData   fornisce la funzione per l'estensione per soddisfare eventuali esigenze personalizzate del vostro   API RESTful.

     

OData RESTful API sono facili da consumare. I metadati OData, un   descrizione leggibile dalla macchina del modello di dati delle API, consente   la creazione di potenti proxy client generici e strumenti. Alcuni   li può aiutare a interagire con OData anche senza sapere nulla   sul protocollo. I 6 passaggi seguenti illustrano 6 interessante   scenari di consumo OData su piattaforme di programmazione diversi.   Ma se sei un non-sviluppatore e vuoi giocare semplicemente con   OData, XOData è il miglior inizio per voi.

Per ulteriori dettagli su http://www.odata.org/

RIPOSO sta per RIFpresentazionale State Ttransfer che è uno stile architettonico basato sulle risorse.Basato sulle risorse significa che i dati e le funzionalità sono considerati come risorse.

OData è un protocollo basato sul Web che definisce una serie di migliori pratiche per la creazione e l'utilizzo di servizi Web RESTful.OData è un modo per creare servizi Web RESTful, quindi un'implementazione di REST.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top