オープン データ プロトコル


Open_Data_Protocol
コンピューティングでは、オープン データ プロトコル( OData ) は、クエリ可能で相互運用可能なREST APIをシンプルかつ標準的な方法で作成および使用できるオープンプロトコルです。Microsoft は2007 年に OData を開始しました。バージョン 1.0、2.0、および 3.0 は、Microsoft Open Specification Promiseに基づいてリリースされています。バージョン 4.0 はOASISで標準化され、 2014 年 3 月にリリースされました。 2015 年 4 月、OASIS は OData v4 と OData JSON Format v4 をISO/IEC JTC 1に提出し、国際標準として承認されました。 . 2016 年 12 月、ISO/IEC は OData 4.0 コアを ISO/IEC 20802-1:2016 として公開し、OData JSON フォーマットを ISO/IEC 20802-2:2016 として公開しました。
このプロトコルにより、 REST APIの作成と使用が可能になります。これにより、Web クライアントは、URL を使用して識別され、データ モデルで定義されたリソースを簡単な HTTP メッセージを使用して公開および編集できます。OData は、 JDBCおよびODBCといくつかの類似点を共有しています。ODBC と同様に、OData はリレーショナル データベースに限定されません。
コンテンツ
1 標準化
1.1 OASIS OData 技術委員会
2 建築
2.1 リソース識別
2.1.1 サービス文書
2.1.2 メタデータ ドキュメント
2.1.3 動的リソース
2.2 リソース操作 2.3 クエリ 2.4 リソース表現
2.4.1 サンプル OData JSON データ ペイロード
2.4.2 サンプル OData Atom データ ペイロード
2.4.3 サンプル OData メタデータ ドキュメント
3 生態系
3.1 ライブラリ
3.1.1 。ネット
3.1.2 ジャワ
3.1.3 JavaScript
3.1.4 PHP
3.1.5 パイソン
3.1.6 ルビー
3.1.7 その他
3.2 アプリケーション
4 ツール
5 こちらもご覧ください
6 参考文献
7 外部リンク
7.1 OData OASIS 標準 7.2 委員会の仕様 7.3 委員会メモ

標準化
Microsoft による最初の開発の後、O​​Data は OASIS OData Technical Committee (TC) の標準化されたプロトコルになりました。

OASIS OData 技術委員会
「OASIS OData TC は、企業、クラウド、およびモバイル デバイスでの再利用のために、異種アプリケーションおよび複数の関係者間でのデータのクエリと共有を簡素化するために機能します。REST ベースのプロトコルである OData は、HTTP 、AtomPub 、および JSON を使用して構築されます。データ フィード リソースをアドレス指定してアクセスするためのURI。これにより、リレーショナル データベース、ファイル システム、コンテンツ管理システム、従来の Web サイトなど (これらに限定されません) のさまざまなソースから情報にアクセスできます。OData は、データを分割する方法を提供します。サイロを解消し、データ コンシューマーがデータ プロデューサーと相互運用できるエコシステムを作成することで、データの共有価値を高めます。このエコシステムでは、現在可能であるよりもはるかに強力な方法で、より多くのアプリケーションがより広範なデータ セットを理解できるようになります。すべてのプロデューサーとコンシューマーこのエコシステムに参加するデータの量は、その全体的な価値を高めます。」
TC 参加企業には、CA Technologies、Citrix Systems、IBM、Microsoft、Progress Software、Red Hat、SAP SE、およびSDLが含まれます。

建築
OData は、RESTful API を作成および使用するためのプロトコルです。したがって、REST の一般的なプラクティスとして、OData は URI を使用して HTTP、AtomPub、および JSON に基づいて構築され、データ フィード リソースをアドレス指定してアクセスします。

リソース識別
OData は URI を使用してリソースを識別します。サービス ルートがhttp://host/service/と省略されている OData サービスごとに、次の固定リソースを見つけることができます。

サービス文書
サービス ドキュメントには、取得できるエンティティ セット、関数、およびシングルトンがリストされています。クライアントは、サービス ドキュメントを使用して、ハイパーメディア主導の方法でモデルをナビゲートできます。
サービス ドキュメントはhttp://host/service/で入手できます。

メタデータ ドキュメント
メタデータ ドキュメントは、OData サービスによって認識される型、セット、関数、およびアクションを記述します。クライアントは、メタデータ ドキュメントを使用して、サービス内のエンティティを照会および操作する方法を理解できます。
メタデータ ドキュメントはhttp://host/service/$metadataで入手できます。

動的リソース
動的リソースの URI は、サービス ドキュメントとメタデータ ドキュメントのハイパーメディア情報から計算できます。

リソース操作
OData は HTTP 動詞を使用して、リソースに対する操作を示します。
GET: リソース (エンティティのコレクション、単一のエンティティ、構造プロパティ、ナビゲーション プロパティ、ストリームなど) を取得します。
POST: 新しいリソースを作成します。
PUT: 既存のリソースを完全なインスタンスに置き換えて更新します。
PATCH: プロパティの一部を部分的なインスタンスに置き換えることで、既存のリソースを更新します。
DELETE: リソースを削除します。

クエリ
OData エンドポイントから要求された URL には、クエリ オプションが含まれる場合がOData プロトコルは、さまざまな「システム クエリ オプション」エンドポイントが受け入れる必要があることを指定します。これらは、データのフィルター処理、順序付け、マップ、またはページ付けに使用できます。
クエリ オプションは、文字の後に URL に追加でき、文字?で区切られます。&各オプションは、$-sign 接頭辞付きの名前とその値で構成され、=記号で区切られています。例: OData/Products?$top=2&$orderby=Name. データをフィルタリングする際に使用するために、多数の論理演算子と関数が定義されています。たとえば、OData/Products?$filter=Price lt 10.00 and startswith(Name,’M’)価格が 10 未満で、名前が文字「M」で始まる製品を要求します。

リソース表現
OData は、データとデータ モデルを表すためにさまざまな形式を使用します。OData プロトコル バージョン 4.0 では、JSON 形式がデータを表すための標準であり、Atom形式はまだ委員会の仕様段階にデータ モデルを表すために、OData サービスによって公開されるエンティティ データ モデルの XML 表現を定義する Common Schema Definition Language (CSDL) が使用されます。

サンプル OData JSON データ ペイロード
製品のコレクション:
{ “@odata.context” : “http://services.odata.org/V4/OData/OData.svc/$metadata#Products” , 「値」:[ {
“ID” : 0 ,
“名前” : “肉” ,
“説明” : “赤身の肉” ,
“ReleaseDate” : “1992-01-01T00:00:00Z” ,
“生産中止日” : null ,
「評価」: 14 ,
“価格” : 2.5 }、 {
“ID” : 1 ,
“名前” : “ミルク” ,
“説明” : “低脂肪乳” ,
“ReleaseDate” : “1995-10-01T00:00:00Z” ,
“生産中止日” : null ,
「評価」: 3 ,
“価格” : 3.5 }、 … ]}

サンプル OData Atom データ ペイロード
製品のコレクション:
http://services.odata.org/v4/odata/odata.svc/Products 製品 <更新> 2015-05-19T03:38:50Z < /更新> <エントリー> http://services.odata.org/V4/OData/OData.svc/Products(0) <タイトル/> <更新> 2015-05-19T03:38:50Z < /更新> <作者>
<名前/>

0
パン
全粒粉パン
1992-01-01T00:00:00Z

4​​
2.5
<エントリー> http://services.odata.org/V4/OData/OData.svc/Products(1) <タイトル/> <更新> 2015-05-19T03:38:50Z < /更新> <作者>
<名前/>

1
牛乳
低脂肪乳
1995-10-01T00:00:00Z

3
3.5

サンプル OData メタデータ ドキュメント
<スキーマ 名前空間= "ODataDemo" >

<キー>


< プロパティ 名 = "ID" タイプ = "Edm.Int32" Nullable = "false" />
< プロパティ 名 = "名前" タイプ = "Edm.String" />
<プロパティ 名 = "説明" タイプ = "Edm.String" />

< プロパティ 名 = "DiscontinuedDate" タイプ = "Edm.DateTimeOffset" />
< プロパティ 名 = "評価" タイプ = "Edm.Int16" Nullable = "false" />




< プロパティ 名 = "都市" タイプ = "Edm.String" />
< プロパティ 名 = "状態" タイプ = "Edm.String" />
< プロパティ 名 = "ZipCode" タイプ = "Edm.String" />
< プロパティ 名 = "国" タイプ = "Edm.String" /> /ComplexType>

生態系
このセクション
OData のエコシステムは、プロトコルを実装するクライアント/サーバー ライブラリと、プロトコルに基づくアプリケーションで構成されます。

ライブラリ
OData API へのアクセス/生成に使用できる OData ライブラリが多数

。ネット
サーバーとクライアント: Microsoft の OData .NET ライブラリ
クライアント: Simple.OData.Client

ジャワ
サーバーとクライアント: Apache Olingo
サーバー側: Jello-Framework
クライアント: odata クライアント

JavaScript
クライアント: Apache Olingo ( OASIS の特集)
クライアント: data.js
クライアント: より高いレベルの抽象化のための JayData (LINQ のような構文、OData ジオ機能のサポート、IndexedDB、WebSQL、DevExtreme、Kendo UI、Angular.js、Knockout.js、および Sencha の統合)。
クライアント: SAPが管理するOpenUI5ライブラリ
クライアント (Node.js): ノードの JayData
依頼主: ブリーズ
クライアント: OData4 と Invantive Bridge Online
クライアント: odata-fluent-query: JavaScript OData クエリ言語パーサー
サーバー: node-odata

PHP
クライアント: odataphp
サーバー: POData

パイソン
クライアント: PyOData
サーバーとクライアント: Pyslet

ルビー
クライアント: ruby​​_odata ライブラリ
クライアント: Ruby 用の無料の OData V4.0 ライブラリ
サーバー: サフラノ

その他
実装されている他の言語は次のとおりです。
AJAX: OData にアクセスするための ASP.NET Ajax ライブラリ。
C++: odatacpp_client は、OData プロトコルのクライアント側のみの実装です。
Windward Studios は、Reporting & Document Generation Solutions で OData をサポートしています。
レポート ツールのList & Label には、 OData 専用のデータ プロバイダーが
Blackberry (C++): OData-BB10 BlackBerry 10 (BB10) Cascades アプリ用の Open Data Protocol (OData) ライブラリ

アプリケーション
アプリケーションには以下が含まれます:
Progress DataDirect ハイブリッド データ パイプラインは、あらゆるクラウド、ビッグ データ、またはリレーショナル データ ソースを OData エンドポイントとして公開できます。
Socrata はOData APIを公開します。
Microsoft Azure はOData APIを公開しています。
Oracle Analytics CloudはOData APIに接続できます
SAP NetWeaver Gateway は、SAP Business Suite および SAP Business Warehouse への OData アクセスを提供します。
IBM WebSphere eXtreme Scale REST データ サービスは、OData を使用して任意の HTTP クライアントからアクセスできます。
Microsoft SharePoint 2010 以降は、そのデータを OData エンドポイントとして公開できます
Office 365 はOData V4.0 API を公開します。
Salesforce Connect は OData API を使用します。
Skyvia Connect は、OData を介してクラウドとデータベースのデータを公開します
Tableau はOData API に接続できます。
TIBCO Spotfire はOData API に接続できます。
Mulesoft は、OData API との統合を支援します。
SuccessFactors はOdata API を使用
Ceridian HCM の Dayforce はOdata を使用
Redfish はOdata を使用

ツール
Nucleon データベース マスター

こちらもご覧ください
GData – Google の競合プロトコル
リソース記述フレームワーク(RDF) – W3Cによる同様の概念
GraphQL

参考文献
^ 「ようこそ!」. MSDN ブログ. OData チーム。
^ 「OASIS Open Data Protocol (OData) 技術委員会」. 2013 年 8 月 5 日閲覧。
^ 「OASIS は、オープンでプログラム可能な Web のための OData 4.0 標準を承認します」 . oasis-open.org . 2014 年 3 月 17 日。
^ 「OASIS は、OData v4 および OData JSON 形式 v4 を ISO/IEC JTC 1 に提出し、国際標準として承認されました」 . MSオープンテック。2015-05-20 のオリジナルからのアーカイブ。2015 年 5 月 18 日閲覧。
^ 「ISO 標準として公開された OData · OData – REST への最良の方法」 . www.odata.org 。2021年5月11日閲覧。
^ 「ISO/IEC 20802-1:2016」 . ISO . 2021年5月11日閲覧。
^ 「ISO/IEC 20802-2:2016」 . ISO . 2021年5月11日閲覧。
^ 「OASIS オープン データ プロトコル (OData) TC | OASIS」 . www.oasis-open.org 。2019年9月24日閲覧。
^ Microsoft の OData .NET ライブラリ ^ Simple.OData.Client ^ アパッチ・オリンゴ ^ ジェロフレームワーク ^ odata クライアント ^ アパッチ・オリンゴ
^ 「ライブラリ · OData – REST への最良の方法」 . www.odata.org 。2019-02-19取得。
^ “data.js” . CodePlex アーカイブ. ^ ジェイデータ ^ ノードの JayData ^ ブリーズ ^ OData4 と Invantive Bridge Online ^ odata-流暢なクエリ ^ ノード-odata ^ odataphp ^ POデータ ^ PyOData ^ ピスレット ^ ruby​​_odata ライブラリ ^ Ruby 用の無料の OData V4.0 ライブラリ ^ サフラノ
^ 「図書館」 . odata.org。
^ ASP.NET Ajax ライブラリ ^ odacpp_client ^ ウィンドワード スタジオ ^ OData-BB10
^ 「生態系」 . odata.org。
^ DataDirect ハイブリッド データ パイプラインの進行
^ 「SAP NetWeaver ゲートウェイ」. 2012 年 11 月 22 日閲覧。
^ IBM developerWorks eXtreme Scale REST データ サービス(OData)
^ 「Office 365 API へようこそ」 . docs.microsoft.com 。2019年9月24日閲覧。
^ 「OData 2.0 または 4.0 アダプタを使用して外部データにアクセスするための Salesforce Connect の設定」 . ^ スカイビアコネクト
^ 「OData – Tableau」 . help.tableau.com 。2019年9月24日閲覧。
^ 「OData と Spotfire」 . TIBCO ブログ. 2016 年 3 月 30 日閲覧。
^ ミュールソフト
^ 「いつでも交換」 . www.mulesoft.com 。2019年9月24日閲覧。
^ 成功要因 ^ セリディアンHCMのデイフォース
^ 「人事レポーティング ソフトウェア – Dayforce | Ceridian」 . www.ceridian.com 。2019年9月24日閲覧。
^ 「Redfish API について知っておくべきこと」 . 正確。2017-12-01 . 2019 年 8 月 31 日閲覧。
^ 「核子データベースマスター」. 2017年11月16日閲覧。

外部リンク
公式ウェブサイト
WCF を使用してサービス指向アプリケーションを開発する
OData の基本プレゼンテーション

OData OASIS 標準
OData バージョン 4.0 パート 1: プロトコル
OData バージョン 4.0 パート 2: URL 規則
OData バージョン 4.0 パート 3: 共通スキーマ定義言語 (CSDL)
ABNF コンポーネント – OData ABNF Construction Rules バージョン 4.0 および OData ABNF テスト ケース
語彙コンポーネント – OData コア語彙および OData メジャー語彙
XML スキーマ – OData EDMX XML スキーマおよび OData EDM XML スキーマ
OData JSON 形式バージョン 4.0

委員会の仕様
OData Atom フォーマット バージョン 4.0
データ集約バージョン 4.0 の OData 拡張機能

委員会メモ
OData バージョン 4.0 の新機能 ·