In cosa differisce oData da un servizio REST?


15

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


Risposte:


11

REST è un'architettura per come inviare messaggi avanti e indietro da un client al server utilizzando HTTP. OData è uno standard sostenuto da Microsoft che utilizza un'architettura REST per inviare particolari tipi di messaggi su HTTP. OData parla dell'aspetto dei messaggi (il contenuto). REST è l'architettura di come questi messaggi vengono inviati avanti e indietro.


5

Sono d'accordo con @jkohlhepp e @Tom Squires, anche se aggiungerò un paio di dettagli.

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

I payload OData si basano sul formato Atom (leggi) e AtomPub (aggiornamento). (A parte questo, Atom è anche la base per un popolare formato di feed RSS.) Atom è estensibile e OData ne ha approfittato per creare estensioni note. Ad esempio, con un servizio OData esistono convenzioni URI con molte funzionalità, come il filtraggio (filtro per data o nome cliente) e l'ordinamento e così via. L'uso di queste convenzioni speciali in un modo standard (definito da OData) rende OData potente poiché agiscono in modo simile e possiamo costruire strumenti per lavorare contro di loro e simili.

Ci sono alcune fonti ben note di OData disponibili, come ad esempio da Netflix (tutti i loro dati sui film sono lì - può essere divertente giocarci!).

Leggi tutto su OData su odata.org .

In bocca al lupo! -Conto


4

REST è uno stile architettonico di costruzione 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 a 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 base, quali operazioni e risorse supporta un servizio!

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

OData sta tentando di eseguire questa operazione per i servizi Web basati su REST.

Definisce $ metadati 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 tradizionale CRUD.

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

OData standardizza i formati di 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 le informazioni precise che stanno cercando - con l'aiuto di $ filter, $ orderby, $ skip, $ top, $ expand.

OData ti aiuta a descrivere il tuo intero modello di dati - Entità e loro relazioni e supportare tutti i tipi di operazioni come CREA, AGGIORNA, ELIMINA, OTTIENI, MERGE e persino OPERAZIONI PERSONALIZZATE su queste Entità e / o Relazioni.

OData v4 è ora uno standard OASIS che presenta numerosi miglioramenti rispetto alle versioni precedenti. L'ecosistema per OData sta lentamente crescendo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.