ODataプロトコルのドキュメント(http://www.odata.org/documentation)には、2と3の2つのバージョンが記載されています。
2つのバージョンの主な違いは何ですか?
両方のバージョンが既存のクライアントライブラリでサポートされていますか、それともバージョン2は「レガシー」と見なされますか?
言い換えると、バージョン2のクライアントはバージョン3と互換性がありますか?
ODataプロトコルのドキュメント(http://www.odata.org/documentation)には、2と3の2つのバージョンが記載されています。
2つのバージョンの主な違いは何ですか?
両方のバージョンが既存のクライアントライブラリでサポートされていますか、それともバージョン2は「レガシー」と見なされますか?
言い換えると、バージョン2のクライアントはバージョン3と互換性がありますか?
2つのバージョンの間には多くの違いがあります。たとえば、OData v3は、アクション、関数、コレクション値、派生型のナビゲーションプロパティ、およびストリームプロパティのサポートを追加します。また、JSONの完全に新しいシリアル化形式も導入されています(「application / json」は、2つのバージョンで完全に異なることを意味します)。
ODataクライアントがサーバーに要求を行うとき、MaxDataServiceVersion HTTPヘッダーを介して理解できる最大プロトコルバージョンを指定できます(指定する必要があります)。プロトコルのv2のみを理解するように作成されたクライアントは、v3ペイロードを理解できません。
v2を「レガシー」またはサポートされていないとは思いませんが、個々のサーバーは、v2(またはv1)までしか理解できない要求をサポートするかどうかを選択できます。そこにある多くの既存のクライアントはv2とv3の両方をサポートしていると思います。WCFデータサービスクライアント(デスクトップ、Windows Phone、Windowsストア、Silverlight)が両方をサポートしていることは知っています。
以前の回答に加えて、一部のクライアントツールはまだOData v2プロトコルのみをサポートしている可能性があることに注意してください。したがって、v3固有の機能が必要な場合は、クライアントコードが自動生成されたプロキシクラスなどによって制限されていないことを確認する必要があります。配列型を処理できます。
サーバーがv3機能を公開しているが、Visual Studio WCFデータサービスクライアントプロキシジェネレーターがv2のみをサポートしているため、それらを使用できない場合の例を次に示します。
2つのバージョンのすべての違いのリストは、Open Data Protocol(OData)仕様のPDFにあります。具体的には、変更ログはセクション「1.7バージョン管理と機能ネゴシエーション」にあります。