2013-02-06 17 views

Antwort

7

Es gibt viele Unterschiede zwischen den beiden Versionen. OData v3 fügt beispielsweise Unterstützung für Aktionen, Funktionen, Auflistungswerte, Navigationseigenschaften für abgeleitete Typen und Streameigenschaften hinzu. Es führt auch ein komplett neues Serialisierungsformat für JSON ein ("application/json" bedeutet in beiden Versionen völlig unterschiedliche Dinge).

Wenn ein OData-Client eine Anforderung an einen Server sendet, kann (und sollte) er die maximale Protokollversion angeben, die er über den HTTP-Header MaxDataServiceVersion verstehen kann. Ein Client, der so geschrieben wurde, dass er nur v2 des Protokolls versteht, ist nicht in der Lage, eine v3-Nutzlast zu verstehen.

Ich glaube nicht, dass ich v2 "Legacy" nennen würde oder nicht unterstützt, aber einzelne Server können wählen, ob sie Anfragen unterstützen, die nur bis zu v2 (oder v1) verstehen. Ich denke, dass viele bestehende Kunden da draußen sowohl v2 als auch v3 unterstützen. Ich weiß, dass die WCF Data Services-Clients (Desktop, Windows Phone, Windows Store und Silverlight) beide unterstützen.

+0

danke! Es war ziemlich schwierig, die Unterschiede zur verfügbaren Dokumentation zu verstehen. –

1

Zusätzlich zu einer vorherigen Antwort beachten Sie, dass einige Client-Tools möglicherweise nur noch OData v2-Protokoll unterstützen. Wenn Sie also v3-spezifische Funktionen benötigen, sollten Sie sicherstellen, dass Ihr Client-Code nicht durch einen automatisch generierten Proxy eingeschränkt wird Klassen, die Array-Typen nicht verarbeiten können.

Hier ist ein Beispiel, wenn der Server v3 Funktionen macht, aber es ist nicht möglich, sie zu verwenden, weil Visual Studio WCF Data Service Client-Proxy-Generator unterstützt nur v2:

http://bloggingabout.net/blogs/vagif/archive/2012/12/16/using-odata-protocol-v3-with-mongodata-odata-provider.aspx

1

Sie die Liste aller finden Unterschiede zwischen den beiden Versionen in der pdf der Open Data Protocol (OData) Specification. Speziell das Änderungsprotokoll ist im Abschnitt "1.7 Versionierung und Capability Negotiation"