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?
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.
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
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.
Leggi altre domande sui tag rest