In che modo oData è diverso da un servizio REST?

13

Sto cercando di scrivere un'API di servizi Web e sto pensando di creare un servizio REST. Cosa significa OData in questo contesto? Puoi spiegare la differenza tra OData e REST?

    
posta gyurisc 17.10.2011 - 15:06
fonte

4 risposte

11

REST è un'architettura per come inviare messaggi avanti e indietro da un client a un server tramite HTTP. OData è uno standard supportato da Microsoft che utilizza un'architettura REST per inviare particolari tipi di messaggi su HTTP. OData parla di come appaiono i messaggi (il contenuto). REST è l'architettura di come questi messaggi vengono inviati avanti e indietro.

    
risposta data 17.10.2011 - 16:33
fonte
5

Sono d'accordo sia con @jkohlhepp che con @Tom Squires, ma aggiungerò un paio di dettagli.

OData è uno standard aperto (supportato da Microsoft, ma adottato oltre Microsoft e disponibile per molte piattaforme, tra cui iOS e Android).

I payload OData sono basati sul formato Atom (leggi) e AtomPub (aggiornamento). (Per inciso, Atom è anche la base per un popolare formato di feed RSS.) Atom è estensibile e OData ne ha approfittato per creare estensioni ben note. Ad esempio, con un servizio OData ci sono Convenzioni URI con molte funzionalità, come il filtro (filtro per data , o il nome del cliente) e l'ordinamento e così via. L'uso di queste convenzioni speciali in un modo standard (definito da OData) rende OData potente dal momento che agisce in modo simile e possiamo costruire strumenti per lavorare contro di loro e così via.

Ci sono alcune fonti OData conosciute, come ad esempio Netflix (ci sono tutti i loro dati sui film - può essere divertente giocarci!).

Leggi tutto su OData all'indirizzo odata.org .

Buona fortuna! -Bill

    
risposta data 19.02.2012 - 04:53
fonte
4

REST è uno stile architettonico per la creazione di servizi Web. È solo un modello che dice che potresti usare HTTP e i suoi verbi (POST / PUT / GET ecc.) Per eseguire CRUD sulle risorse esposte dai tuoi Servizi. Ma al REST mancano tutti i dettagli su come dovrebbero apparire gli URL, come dovrebbero apparire i formati di richiesta / risposta, come interrogare le informazioni o, a livello di base, quali operazioni e risorse un servizio supporta in primo luogo!

Nel mondo dei servizi Web basati su XML, abbiamo SOAP, WSDL, WS- * che definiscono gli standard che consentono l'interoperabilità tra i vari servizi e i loro clienti.

OData sta cercando di farlo per i servizi Web basati su REST.

Definisce $ metadata in formato CSDL per spiegare quali tipi (entità / complessi) supportano il tuo servizio e le loro proprietà, i loro tipi di dati, come sono correlati i tuoi tipi e se il tuo servizio supporta anche alcune operazioni speciali oltre al CRUD tradizionale.

OData standardizza i formati di URL per le risorse:., / Entity, / Entity ('id') o / Entity (key1 = value1, key2 = value2) ... e così via ..

OData standardizza i formati richiesta / risposta in JSON e AtomXml su come sono strutturati i dati e i relativi metadati.

OData specifica anche un linguaggio di query molto ricco per consentire ai consumatori di interrogare i tuoi servizi per ottenere informazioni precise che stanno cercando - con l'aiuto di $ filter, $ orderby, $ skip, $ top, $ expand.

OData ti aiuta a descrivere l'intero modello di dati - Entità e relative relazioni e supporta tutti i tipi di operazioni come CREA, AGGIORNAMENTO, ELIMINA, OTTIENI, MERGE e anche OPERAZIONI PERSONALIZZATE su queste Entità e / o relazioni.

OData v4 è ora uno standard OASIS che ha molti miglioramenti in cima alle sue versioni precedenti. L'ecosistema di OData sta lentamente crescendo.

    
risposta data 18.07.2014 - 15:14
fonte
2

OData è uno standard impiantato usando REST.

    
risposta data 17.10.2011 - 15:15
fonte

Leggi altre domande sui tag