Open Data Protocol (OData) – это открытый веб-протокол для запроса и обновления данных. Протокол позволяет выполнять операции с ресурсами, используя в качестве запросов HTTP-команды, и обмениваться данными в форматах JSON или XML.
OData является одним из лучших стандартов для создания RESTful API.
Вы можете запрашивать данные используя простые HTTP запросы, например:
http://nitrosdata.com/service/testdb/person?$filter=firstname eq «Lamar»
Найти всех людей по имени Lamar.
OData позволяет задавать огромное число параметров, которые позволяют сформировать очень сложные запросы к источнику данных, например:
http://nitrosdata.com/service/testdb/book?$filter=publisher/president/likes/author/firstname eq 'Georgie'&$top=10&$orderby=title
Выбрать все книги, удовлетворяющие следующему условию: президент издательства в котором издана книга, любит книги некоего автора с именем “Georgie”. Результат запроса необходимо отсортировать по названию, выдать первые 10 книг.
Язык запросов OData сопоставим по мощности с SQL.
Базовые возможности OData
- Простое чтение данных (запросы без параметров)
- Получение коллекции объектов
- Получение отдельного объекта
- Получение отдельного свойства
- Получение объектов по связям. Например, получение списка друзей друзей.
- Параметризованные запросы (поиск, сортировка, и т.д.)
- Поиск по критериям (“меньше”, ”больше” и т.п.), возможность построения сложных условий, используя логические выражения.
- Поиск по связям (по связанным объектам)
- Сортировка по любому набору полей
- Получение составных сложных объектов, например, получить данные о человеке вместе с его телефонами и списком друзей
- Пэйджинг
- Добавление данных
- Добавление простых объектов
- Добавление коллекций объектов
- Добавление составных объектов (вместе с вложенными объектами)
- Модификация данных
- Модификация отдельных свойств (полей)
- Замена объекта целиком на новый
- Удаление данных
- Удаление объектов
- Удаление коллекций
- Удаление отдельных свойств (полей)
- Добавление, модификация и удаление связей между объектами
Библиотеки для работы с OData
В настоящее время существует большое количество библиотек, поддерживающих протокол OData, и каждый день появляются новые.
В частности, с OData работают такие JavaScript библиотеки, как Kendo UI, DevExtreme Web, Syncfusion HTML5 controls, Infragistics HTML5 controls, OpenUI5, Wijmo, JayData, Breeze.js, datajs, ODataJS, angular-odata, и т.д. Существуют также библиотеки для Java, .NET, C++, Python, Objective-C и т.д.
Многие из этих библиотек существенно упрощают разработку сложных приложений благодаря стандарту OData. Например, достаточно грид контролу указать URL к серверу OData и все остальное он сделает сам: пэйджинг, сортировку, добавление- модификацию-удаление записей, фильтрацию данных, группировку и т.д.
NitrosBase.js – готовый OData сервер
NitrosBase.js – это готовый к употреблению OData сервер. Он дает возможность создать базу данных, добавить произвольные JSON объекты без описания схемы данных, и делать OData запросы для получения и модификации данных.
Классический сценарий использования NitrosBase.js – это быстрая разработка прототипов приложений, работающих с OData сервером. При разработке прототипа Вы можете просто положить необходимые контролы на форму, и они сразу же работают без создания серверных кодов. Если Вы добавляете, удаляете поля в JavaScript объектах, модифицирует связи между объектами Вам не придется менять схему базы данных и модифицировать серверные коды. В тоже время он позволяет выполнять запросы любой сложности.
Разработав живой прототип приложения Вы получаете полную спецификацию Вашего API и устоявшуюся схему данных. Теперь Вы можете приступить к разработке сервера или оставить NitrosBase.js
NitrosBase.js – это наш новый проект (http://nitrosdata.com) и мы хотели бы услышать рекомендации сообщества по улучшению и развитию проекта.
Автор: NitrosData