Структуры
Материал из Hivext Wiki
Содержание |
Структуры
Сервис структур позволяет гибко управлять базой данных, создавать таблицы, поля с указанием типа, делать записи в таблицах, проводить ассоциации между данными. Сервис базируется на технологии ORM (технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая "виртуальную объектную базу данных"). Сервис структур содержит собственный SQL процессор (HiveQL) для структурированных запросов что полностью исключает возможность вредоносных инъекций. Сервис управления доступом также работает со структурами, позволяя задавать индивидуальные права доступа как на типы данных, так и на объекты.
Варианты использования сервиса:
- Разработка любых приложений где требуется хранение информации;
- Обмен данными между клиентами через объекты сервиса;
- Построение API импорта данных из ваших проектов для других разработчиков приложений;
- Дублирование данных чтобы снизить риски их потери, шифрование если это необходимо.
Общая информация
| Параметр | Значение |
|---|---|
| Версия сервиса | 1.0 [stable] |
| Пространство имен | Data |
| Имя сервиса | Base |
| Локальный доступ | hivext.data.base.{название_метода} |
| Сетевой доступ | http://api.hivext.ru/1.0/data/base/{протокол}/{название_метода} |
| Характеристика |
|
| Квоты |
|
| Консоль | http://code.hivext.ru/development/APIConsole/#Data.Base |
Методы
Разделение методов сервиса по категориям
| Типы | Объекты |
|---|---|
|
DefineType |
CreateObject |
Поддерживаемые типы данных
| Название типа | Описание типа |
|---|---|
| Базовые типы данных | |
| boolean | |
| byte | |
| short | |
| integer | |
| long | |
| float | |
| double | |
| char | |
| string | Текстовый тип данных, по умолчанию максимум 255 символов. |
| string(N) | Текстовый тип данных, может содержать максимум N символов, где N любое целое число от 1 до 10240. |
| text | Текстовый тип данных, может содержать максимум 65000 символов. |
| mtext | Текстовый тип данных, может содержать максимум 16000000 символов. |
| list | Коллекция (список) объектов типа string. |
| list<type> | Коллекция (список) объектов определенного типа, где type - название типа данных. |
| set | Коллекция (набор) уникальных объектов типа string. |
| set<type> | Коллекция (набор) уникальных объектов определенного типа, где type - название типа данных. |
| map | Набор объектов парами ключ/значение типа string. |
| map<type, type> | Набор объектов парами ключ/значение определенного типа, где type - название типа данных. |
|
Дата и время | |
| time | HH:MM:SS |
| date | YYYY-MM-DD |
| datetime | YYYY-MM-DD HH:MM:SS |
| timestamp | YYYY-MM-DD HH:MM:SS |
| year | YYYY |
| millisec | Время в миллисекундах, которое прошло с 1 января 1970 года. Также известно как unix time. |
|
Специальные типы данных | |
| user | Тип данных пользователь. Поля данного типа содержат идентификатор пользователя (uid) создавшего/обновившего объект (для гостей uid = 0). |
| signature | Тип данных подпись устройства. Поля данного типа содержат подпись устройства создавшего/обновившего объект. |
|
Комплексные типы данных | |
|
Созданные типы данных можно использовать для создания комплексных типов данных. Например В результате получится следующий тип данных: ComplexType : {
PropA : "int",
Simple : {
PropB : "string"
}
}
Метод CreateObject(..., "ComplexType") кроме создания объекта типа ComplexType создаст объект типа SimpleType в другой таблице. В свойстве Simple будет содержаться id созданного объекта типа SimpleType. Методы выборки GetObject, GetObjects, GetObjectsByCriteria, GetProperty для поля Simple вернут индекс (id) объекта. Если в требуется вернуть сам объект, а не него индекс, в параметре eager (данный параметр содержат все методы выборки) указывается имя свойства для которого вернется объект. | |
Команды HiveQL процессора
Реляционные операторы
| Специальные операторы
| ||||||||||||||||||||||
Булевы операторы
| Групповые символы (wildcards)
| ||||||||||||||||||||||
Упорядочение выборки
| |||||||||||||||||||||||
Примеры:
- id IS NOT NULL - все объекты;
- date > 123456789 - все объекты со свойством date большим 123456789;
- model = "Desert" OR (code > 100 AND code <= 200) - все объекты у которых в свойстве model указано Desert или если свойство code содержит значение в диапазоне от 100 до 200 включительно;
- StateName LIKE "A%" AND CityName IS NOT NULL - для всех областей начинающихся на А, взять города, которые содержат название;
- ORDER BY UniverseName, GalaxyName - вернуть объекты отсортированные по значениям свойств UniverseName и GalaxyName в алфавитном порядке;
- Price > 100 AND Price < 200 ORDER BY Price DESC - вернуть объекты, значения свойства Price которых находится в диапазоне 100-200 в порядке убывания.
Клиенты
| Язык | Адрес |
|---|---|
| JavaScript | http://api.hivext.ru/1.0/data/base.js |
Примеры
| Server-Side | |
|---|---|
| Java - Типы данных и объекты | Java |
| Javascript - Типы данных и объекты | Javascript |
| Client-Side | |
| Javascript | |
