ODataは、RESTful APIを作成するための最高の標準の1つです。
次のような単純なHTTPリクエストを使用してデータをリクエストできます。
https://samples.databoom.space/api1/sampledb/collections/persons?$filter=firstname eq 'Lamar'
Lamarの名前ですべての人を見つけます。
ODataを使用すると、非常に複雑なクエリをデータソースに作成できるようにする多数のパラメーターを設定できます。次に例を示します。
https://samples.databoom.space/api1/sampledb/collections/books?$filter=publisher/president/likes/author/firstname eq 'Georgie'&$ top = 10&$ orderby = title
次の条件を満たすすべての本を選択します。本が出版されている出版社の社長は、「Georgie」という名前の特定の著者の本を愛しています。 最初の10冊の本を配布するために、リクエストの結果を名前でソートする必要があります。
ODataクエリ言語の能力はSQLに匹敵します。
基本的なOData機能
- 単純なデータ読み取り(パラメーターなしのクエリ)
- オブジェクトのコレクションを取得する
- 単一のオブジェクトを取得する
- 単一のプロパティを取得する
- 関係からオブジェクトを取得します。 たとえば、友人の友人のリストを取得します。
- パラメータ化されたクエリ(検索、並べ替えなど)
- 基準(「より少ない」、「より多く」など)、論理式を使用して複雑な条件を構築する機能による検索。
- リンクによる(関連オブジェクトによる)検索
- フィールドのセットで並べ替え
- 複雑な複雑なオブジェクトの取得。たとえば、携帯電話や友人のリストと一緒に人に関するデータを受信する
- ページング
- データを追加する
- 単純なオブジェクトを追加する
- 機能コレクションの追加
- 複合オブジェクトの追加(ネストされたオブジェクトとともに)
- データ修正
- 個々のプロパティ(フィールド)の変更
- オブジェクト全体を新しいものに置き換える
- データ削除
- オブジェクトを削除する
- コレクションを削除する
- 個々のプロパティ(フィールド)を削除する
- オブジェクト間の関係の追加、変更、および削除
ODataを操作するためのライブラリ
現在、ODataプロトコルをサポートするライブラリが多数あり、毎日新しいライブラリが登場しています。
特に、 Kendo UI 、 DevExtreme Web 、 Syncfusion HTML5コントロール 、 Infragistics HTML5コントロール 、 OpenUI5 、 Wijmo 、 JayData 、 Breeze.js 、 datajs 、 ODataJS 、 angular-odataなどのJavaScriptライブラリはODataで動作します。 Java、.NET、C ++、Python、Objective-Cなどのライブラリもあります。
これらのライブラリの多くは、OData標準のおかげで複雑なアプリケーションの開発を大幅に簡素化します。 たとえば、コントロールでODataサーバーへのURLを指定するだけで十分で、残りはページング、並べ替え、追加、変更、レコードの削除、データのフィルター処理、グループ化などを行います。
NitrosBase.js-準備ができたODataサーバー
NitrosBase.jsは、すぐに使用できるODataサーバーです。 データベースを作成し、データスキームの説明なしで任意のJSONオブジェクトを追加し、ODataリクエストを行ってデータを受信および変更することができます。
NitrosBase.jsの古典的な使用例は、ODataサーバーと連携するアプリケーションのプロトタイプの迅速な開発です。 プロトタイプを開発するときに、必要なコントロールをフォームに配置するだけで、サーバーコードを作成せずにすぐに機能します。 JavaScriptオブジェクトのフィールドを追加、削除、オブジェクト間の関係を変更する場合、データベーススキーマを変更したり、サーバーコードを変更したりする必要はありません。 同時に、どんな複雑な要求にも対応できます。
ライブアプリケーションプロトタイプを開発することにより、APIの完全な仕様と確立されたデータスキーマを取得できます。 これで、サーバーの開発を開始するか、NitrosBase.jsを残すことができます
NitrosBase.jsは私たちの新しいプロジェクト( http://databoom.space )であり、プロジェクトを改善および開発する方法に関するコミュニティの推奨事項をお聞きしたいと思います。