|
| 1 | +# Источники данных (v2) - `в разработке` |
| 2 | + |
| 3 | +## Конфигурация |
| 4 | + |
| 5 | +### Получение одного по алиасу |
| 6 | + |
| 7 | +Метод: GET /v2/datasource/:alias |
| 8 | + |
| 9 | +**Uri параметры запроса** |
| 10 | +* alias - алиас источника указанного при создании |
| 11 | + |
| 12 | +**Параметры ответа (200 OK)** |
| 13 | + |
| 14 | +* success (bool, required) - успешный запрос |
| 15 | +* item (DataSourceConfigDto, required) - параметры источника данных |
| 16 | + |
| 17 | + |
| 18 | +### Получение списка |
| 19 | + |
| 20 | +Метод: GET /v2/datasource |
| 21 | + |
| 22 | +**Параметры ответа (200 OK)** |
| 23 | + |
| 24 | +* success (bool, required) - успешный запрос |
| 25 | +* items (DataSourceConfigDto[], required) - список источников данных |
| 26 | + |
| 27 | + |
| 28 | +### Создание |
| 29 | +**Метод**: POST /v2/datasource |
| 30 | + |
| 31 | +Создает новый источник данных по указанным настройкам |
| 32 | + |
| 33 | +**Параметры тела запроса** |
| 34 | + |
| 35 | +Параметры из DataSourceConfigDto |
| 36 | + |
| 37 | +**Параметры ответа (200 OK) - json object**: |
| 38 | + |
| 39 | +* success (bool, required) - успешность запроса, |
| 40 | +* errors (Error[], optional, если success = false) - список возникших ошибок, |
| 41 | +* data (object, optional) |
| 42 | + * id (string, required) - идентификатор созданного источника данных |
| 43 | + |
| 44 | +### Изменение |
| 45 | + |
| 46 | +Перезаписывает настройки по алиасу |
| 47 | + |
| 48 | +**Метод**: PUT /v2/datasource/:alias |
| 49 | + |
| 50 | +**Uri параметры запроса** |
| 51 | +* alias - алиас источника указанного при создании |
| 52 | + |
| 53 | +**Параметры тела запроса**: DataSourceConfigDto |
| 54 | + |
| 55 | +**Параметры ответа** (200 OK): |
| 56 | + |
| 57 | +* success (bool, required) - успешность запроса, |
| 58 | +* errors (Error[], optional, если success = false) - список возникших ошибок, |
| 59 | +* data (object, optional) |
| 60 | + * id (string, required) - идентификатор измененного источника данных |
| 61 | + |
| 62 | +### Обновление параметров настроек |
| 63 | + |
| 64 | +Обновляет по алиасу настройки которые были переданы, те которые не переданы оставляет в исходном виде |
| 65 | + |
| 66 | +**Метод**: PATCH /v2/datasource/:alias |
| 67 | + |
| 68 | +**Uri параметры запроса** |
| 69 | +* alias - алиас источника указанного при создании |
| 70 | + |
| 71 | +**Параметры тела запроса**: DataSourceConfigDto |
| 72 | + |
| 73 | +**Параметры ответа** (200 OK): |
| 74 | + |
| 75 | +* success (bool, required) - успешность запроса, |
| 76 | +* errors (Error[], optional, если success = false) - список возникших ошибок, |
| 77 | +* data (object, optional) |
| 78 | + * id (string, required) - идентификатор измененного источника данных |
| 79 | + |
| 80 | + |
| 81 | +## Работа с данными |
| 82 | + |
| 83 | +### Получение списка данных |
| 84 | + |
| 85 | +Метод: POST /v2/datasource/:alias/data |
| 86 | + |
| 87 | +**Параметры тела запроса** |
| 88 | + |
| 89 | +* filters (FilterItemInterface[], optional) - фильтры |
| 90 | +* fields (string[], optional) - выбираемые поля |
| 91 | +* search (string, optional) - поисковый запрос, если указаны фильтры, то с учетом фильтров |
| 92 | +* take (integer, optional, default 50) - кол-во записей в выборке, макс 500 |
| 93 | +* skip (integer, optional, default 0) - кол-во записей которые нужно пропустить |
| 94 | +* sort (object[], optional) - сортиировка по полям, параметры объект массива |
| 95 | + * field (string, required) - поле сортировки |
| 96 | + * ask (boolean, optional) - по возрастанию |
| 97 | +* route (string[], optional) - фильтр по пути записей, работает для источника с isTree = true |
| 98 | +* parentId (string, optional) - фильтр по родительскому элементу |
| 99 | + |
| 100 | + |
| 101 | +**Параметры тела ответа** |
| 102 | + |
| 103 | +* success (bool, required) - успешность запроса, |
| 104 | +* items (object[], optional) - список данных |
| 105 | + * ... все поля или указанные поля в параметре `fields` |
| 106 | +* errors (Error[], optional, если success = false) - список возникших ошибок, |
| 107 | +* count (int, required) - кол-во записей в выборке |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +# Структура объектов |
| 113 | + |
| 114 | +## DataSourceConfigDto |
| 115 | +* title (string, required) - название, |
| 116 | +* type (string:enum, required) - тип источника, может принимать значения: |
| 117 | + * internal `deprecated` - внутрениий источник данных, данные храняться в единой таблице в виде json объекта, |
| 118 | + * internal-db `в разработке` - внутрениий источник данных, умеет управлять полями таблиц, данные храняться в отдельной таблице |
| 119 | + * custom - для особых случаев работы с данными, исполняется на стороне клинета, поэтому для обработки больших данных лучше не использовать |
| 120 | + * restapi `в разработке` - загружает данные через метод апи стороннего сервиса |
| 121 | + * sql `в разработке` - позволяет получать данные с помощью SQL запроса, |
| 122 | +* alias (string, required) - уникальный алиас или псевдоним источника данных, |
| 123 | +* fields (Field[], required) - поля |
| 124 | +* readonly (bool, optional, default false) - только для чтения, |
| 125 | +* isTree (bool, optional, default false) - древовидный источник данных, |
| 126 | +* keyFields (string[], optional, default [id]) - ключевые поля, доступно только для типа `internal-db`, если установлено, то можно загружать данные по ключу через метод `POST /v2/datasource/:alias/data/by-keys` |
| 127 | +* eventHandlers (EventHandler[], optional, default []) - подпись на события изменения в данных |
| 128 | +* permissions (object, required) - разрешения |
| 129 | + * can{`Action`} (string:enum) - возможные значения |
| 130 | + * all - все могут |
| 131 | + * roles - могут перечисленные роли, указанные в `can{Action}Roles` |
| 132 | + * nobody - никто |
| 133 | + * can{`Action`}Roles - роли, обязательно для `can{Action} = roles` |
| 134 | + |
| 135 | +## Field |
| 136 | + |
| 137 | +Настройка полей источника данных |
| 138 | + |
| 139 | +Параметры |
| 140 | + |
| 141 | +* alias |
| 142 | +* type |
| 143 | + |
| 144 | + |
| 145 | +## FieldType |
| 146 | + |
| 147 | +Перечисление типов полей источника данных |
| 148 | + |
| 149 | +Доступные значения: |
| 150 | +* number |
| 151 | +* string |
| 152 | +* bool |
| 153 | +* text |
| 154 | +* enum |
| 155 | +* image |
| 156 | +* file |
| 157 | +* datetime |
| 158 | +* date |
| 159 | +* time |
| 160 | +* link |
| 161 | +* table |
| 162 | + |
| 163 | +## Action |
| 164 | +Действие над данными источника данных, возможные значения |
| 165 | + |
| 166 | +Тип: Перечисление |
| 167 | + |
| 168 | +Доступные значения: |
| 169 | +* Add - добавить строку |
| 170 | +* Edit - изменить строку |
| 171 | +* Remove - удалить строку |
| 172 | + |
| 173 | +Пример: |
| 174 | +```json |
| 175 | +{ |
| 176 | + ... |
| 177 | + "permissions": { |
| 178 | + "canAdd": "roles", |
| 179 | + "canEdit": "roles", |
| 180 | + "canRemove": "roles", |
| 181 | + "canAddRoles": [ |
| 182 | + "managers" |
| 183 | + ], |
| 184 | + "canEditRoles": [ |
| 185 | + "managers" |
| 186 | + ], |
| 187 | + "canRemoveRoles": [ |
| 188 | + "managers" |
| 189 | + ] |
| 190 | + } |
| 191 | +``` |
| 192 | + |
| 193 | +## EventHandler |
| 194 | + |
| 195 | +Обработчик событий, при изменениях в источнике данных |
| 196 | + |
| 197 | +Параметры: |
| 198 | + |
| 199 | +* event (string:enum, required) - событие по которому запуститься обработчик |
| 200 | +* handler (object, required) - обработчик |
| 201 | + * type (string:enum, required) - тип обработчка |
| 202 | + * script - скрипт javascript |
| 203 | + * function - функция |
| 204 | + * functionAlias (string, required if type = function) - алиас функции |
| 205 | + * script (string, required if type = script) - скрипт |
| 206 | + |
| 207 | +Пример: |
| 208 | + |
| 209 | +```json |
| 210 | +{ |
| 211 | + "event": "onAdd", |
| 212 | + "handler": { |
| 213 | + "type": "function", |
| 214 | + "functionAlias": "get-orders" |
| 215 | + } |
| 216 | +} |
| 217 | +``` |
| 218 | + |
| 219 | + |
| 220 | +## Error |
| 221 | + |
| 222 | +Ошибка выполнения запросов |
| 223 | + |
| 224 | +Тип: объект |
| 225 | + |
| 226 | +Параметры: |
| 227 | + |
| 228 | +* code (string, optional) - код ошибки |
| 229 | +* description (string, required) - человекопонятное описание ошибки |
0 commit comments