Skip to content

Commit bbddc35

Browse files
committed
datasource update
1 parent c7c8fbd commit bbddc35

File tree

1 file changed

+132
-29
lines changed

1 file changed

+132
-29
lines changed

ru/api/datasource-v2.md

Lines changed: 132 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ description: Документация Tabbled платформы | Источн
1616

1717
**Параметры ответа (200 OK)**
1818

19-
* success (bool, required) - успешный запрос
19+
* statusCode (int, required) - успешность запроса,
2020
* item (DataSourceConfigDto, required) - параметры источника данных
2121

2222

@@ -26,7 +26,7 @@ description: Документация Tabbled платформы | Источн
2626

2727
**Параметры ответа (200 OK)**
2828

29-
* success (bool, required) - успешный запрос
29+
* statusCode (int, required) - успешность запроса,
3030
* items (DataSourceConfigDto[], required) - список источников данных
3131

3232

@@ -41,7 +41,7 @@ description: Документация Tabbled платформы | Источн
4141

4242
**Параметры ответа (200 OK) - json object**:
4343

44-
* success (bool, required) - успешность запроса,
44+
* statusCode (int, required) - успешность запроса,
4545
* errors (Error[], optional, если success = false) - список возникших ошибок,
4646
* data (object, optional) - данные по созданному источнику данных
4747
* id (string, required) - идентификатор созданного источника данных
@@ -59,7 +59,7 @@ description: Документация Tabbled платформы | Источн
5959

6060
**Параметры ответа** (200 OK):
6161

62-
* success (bool, required) - успешность запроса,
62+
* statusCode (int, required) - успешность запроса,
6363
* errors (Error[], optional, если success = false) - список возникших ошибок,
6464
* data (object, optional)
6565
* id (string, required) - идентификатор измененного источника данных
@@ -77,7 +77,7 @@ description: Документация Tabbled платформы | Источн
7777

7878
**Параметры ответа** (200 OK):
7979

80-
* success (bool, required) - успешность запроса,
80+
* statusCode (int, required) - успешность запроса,
8181
* errors (Error[], optional, если success = false) - список возникших ошибок,
8282
* data (object, optional)
8383
* id (string, required) - идентификатор измененного источника данных
@@ -102,15 +102,60 @@ description: Документация Tabbled платформы | Источн
102102
* route (string[], optional) - фильтр по пути записей, работает для источника с isTree = true
103103
* parentId (string, optional) - фильтр по родительскому элементу
104104

105-
106105
**Параметры тела ответа**
107106

108-
* success (bool, required) - успешность запроса,
107+
* statusCode (int, required) - успешность запроса,
109108
* items (object[], optional) - список данных
110109
* ... все поля или указанные поля в параметре `fields`
111110
* errors (Error[], optional, если success = false) - список возникших ошибок,
112111
* count (int, required) - кол-во записей в выборке
112+
* totals (object, optional) - агрегированные значения полей переданных в запросе agg
113+
* [field] (number, required) - значение агрегации по полю по всем данным их запроса
114+
115+
### Получение итоговых значений данных
116+
117+
Используется для отображения в колонках таблиц в подвале
118+
119+
Метод: POST /v2/datasource/:alias/data/totals
120+
121+
**Параметры тела запроса**
122+
123+
* filter (FilterItemInterface[], optional) - фильтры
124+
* filterBy (string, optional) - фильтр с sql синтакисом, имеет приоритет над filter
125+
* query (string, optional) - поисковый запрос, если указаны фильтры, то с учетом фильтров
126+
* parentId (string, optional) - фильтр по родительскому элементу
127+
* agg (object[], optional) - агрегировать значения по полям
128+
* field (string, required) - поле для агрегации
129+
* func (string:enum, required) - функция, доступны значения
130+
* none - не агрегировать
131+
* sum - сумма всех значений
132+
* avg - среднее значение
133+
* min - минимальное значение
134+
* max - максимальное значение
135+
136+
**Параметры тела ответа**
137+
138+
* statusCode (int, required) - успешность запроса,
139+
* totals (object, optional) - агрегированные значения полей переданных в запросе agg
140+
* [field] (number, required) - значение агрегации по полю по всем данным их запроса
113141

142+
### Экспорт данных в формате csv
143+
144+
Используется для выгрузки данных по указанным колонкм, филльтрации и сортировки.
145+
Работает только для плоской структуры данных `isTree = false`
146+
147+
Метод: POST /v2/datasource/:alias/data/export
148+
149+
**Параметры тела запроса**
150+
151+
* filter (FilterItemInterface[], optional) - фильтры
152+
* filterBy (string, optional) - фильтр с sql синтакисом, имеет приоритет над filter
153+
* query (string, optional) - поисковый запрос, если указаны фильтры, то с учетом фильтров
154+
155+
**Параметры тела ответа**
156+
157+
* statusCode (int, required) - успешность запроса,
158+
* file (string:base64, required) - файл закодированный в строку base64
114159

115160
### Получение записи по идентификатору
116161

@@ -123,10 +168,59 @@ description: Документация Tabbled платформы | Источн
123168

124169
Параметры тела ответа
125170

126-
* success (bool, required) - успешность запроса,
171+
* statusCode (int, required) - успешность запроса,
127172
* item (object, required) - данные записи
128173
* ... все поля записи или только указанные поля в запросе
129174

175+
### Добавить или обновить записи
176+
177+
Метод: PUT /v2/datasource/:alias/data
178+
179+
Принимает массив записей, которые должны буть добавлены или обновлены в источнике данных.
180+
Если ид не передан или не существует в бд, будет добавлен новый.
181+
182+
Работа с данными доступна только для типа источника данных internal-db
183+
184+
Если в одной из записей ошибка, то все записи не будут обработаны.
185+
186+
Параметры:
187+
* :alias - алиас источника данных
188+
189+
Параметры запроса
190+
191+
* items (object[], required, 1..100) - записи для добавления или обновления. Для существующей записи, не переданные поля будут иметь прежние значения, т.е. перезапишутся только переданные. Максимум 100 записей в одном запросе.
192+
* id (string, optional) - если передан и существует в бд, то будет обновлен в бд
193+
* [DataSourceField.alias] (any, optional) - значения параметры по алиасу поля
194+
* returnItems (bool, optional, default false) - если true, то в ответе будет возвращен массив добавленных/обновленных записей
195+
196+
Параметры ответ
197+
198+
* statusCode (int, required) - успешность запроса,
199+
* items (object[], optional) - список данных, если returnItems=true
200+
* ... все поля записи включая системные
201+
* errors (Error[], optional, если success = false) - список возникших ошибок,
202+
203+
204+
### Удалить записи
205+
206+
Метод: DELETE /v2/datasource/:alias/data
207+
208+
Метод удаляет
209+
210+
Параметры:
211+
* :alias - алиас источника данных
212+
213+
Параметры запроса
214+
215+
* ids (string[], optional) - идентификаторы записей
216+
* where (string, optional) - sql like запрос удаления данных по условию
217+
* soft (bool, optional, default true) - мягкое удаление, если true, то ставится пометка удаления, запись в бд остается, но в списке больше не выводиться
218+
219+
Параметры ответа:
220+
221+
* statusCode (int, required) - успешность запроса,
222+
* errors (Error[], optional, если success = false) - список возникших ошибок
223+
130224
### Индексировать данные
131225

132226
Индексирует данные для быстрого поиска и фильтрации списка данных. Для индексации создается задача которая выполняется отдельным процессом, в ответ получаем `taskId` статус которого можно узнать в отдельном методе.
@@ -162,6 +256,7 @@ Body параметры:
162256

163257
Параметры ответа:
164258

259+
* statusCode (int, required) - успешность запроса,
165260
* items (object, required) - данные записи
166261
* id (string, required) - ид истории изменения
167262
* version - версия
@@ -200,32 +295,41 @@ Body параметры:
200295
## DataSourceConfigDto
201296
* title (string, required) - название,
202297
* type (string:enum, required) - тип источника, может принимать значения:
203-
* internal `deprecated` - внутрениий источник данных, данные храняться в единой таблице в виде json объекта,
204-
* internal-db `в разработке` - внутрениий источник данных, умеет управлять полями таблиц, данные храняться в отдельной таблице
205-
* custom - для особых случаев работы с данными, исполняется на стороне клинета, поэтому для обработки больших данных лучше не использовать
298+
* internal - внутрениий источник данных, данные храняться в единой таблице в виде json объекта,
299+
* custom - для особых случаев работы с данными, исполняется на стороне клинета, для обработки больших данных лучше не использовать
206300
* restapi `в разработке` - загружает данные через метод апи стороннего сервиса
207301
* sql `в разработке` - позволяет получать данные с помощью SQL запроса,
208302
* alias (string, required) - уникальный алиас или псевдоним источника данных,
209303
* fields (Field[], required) - поля
210304
* readonly (bool, optional, default false) - только для чтения,
211305
* isTree (bool, optional, default false) - древовидный источник данных,
212-
* keyFields (string[], optional, default [id]) - ключевые поля, доступно только для типа `internal-db`, если установлено, то можно загружать данные по ключу через метод `POST /v2/datasource/:alias/data/by-keys`
213-
* eventHandlers (EventHandler[], optional, default []) - подпись на события изменения в данных
214306
* permissions (object, required) - разрешения
215-
* can{`Action`} (string:enum) - возможные значения
307+
* [Action] (string:enum) - возможные значения
308+
* type:
216309
* all - все могут
217310
* roles - могут перечисленные роли, указанные в `can{Action}Roles`
218311
* nobody - никто
219-
* can{`Action`}Roles - роли, обязательно для `can{Action} = roles`
312+
* roles (string[], optional) - опеределенные роли, которым разрешено, в случае если тип указан roles
220313

221314
## Field
222315

223316
Настройка полей источника данных
224317

225318
Параметры
226319

227-
* alias
228-
* type
320+
* alias (string, required) - алиас поля
321+
* type (FieldType, required) - тип поля
322+
* title (string, required) - заголовок поля
323+
* searchable (boolean, optional, default true) - поле для полтотекстового поиска, по умолчанию false, доступна установка в true только для типа string
324+
* filterable (boolean, optional, default true) - фильтруемое поле, по умолчанию true для полей с типом number, enum, link, bool, time, date, datetime
325+
* sortable (boolean, optional, default true) - сортируемое поле, по умолчанию true для number, string
326+
* isMultiple (bool, optional) - множественные значения, доступно только для link, enum, image, file
327+
* defaultValue (string, optional) - значение по умолчанию
328+
* datasourceReference (string, optional) - алиас источника данных, обязательно для типа link и table. Для link будет являться источником данных для отображения в выпадающем списке. Для table будет служить определением вложенной структуры данных, ссылатся может только на источник данных с типом field
329+
* autoincrement (boolean, optional, default false) - счетчик, только для типа number
330+
* isNullable (boolean, optional, default true) - значение может принимать null
331+
* precision (boolean, optional) - точность числового значения
332+
* enumValues (enum[], optional) - значения перечисления, обязательно для типа enum
229333

230334

231335
## FieldType
@@ -257,23 +361,22 @@ Body параметры:
257361
* Remove - удалить строку
258362

259363
Пример:
364+
260365
```json
261366
{
262367
...
263368
"permissions": {
264-
"canAdd": "roles",
265-
"canEdit": "roles",
266-
"canRemove": "roles",
267-
"canAddRoles": [
268-
"managers"
269-
],
270-
"canEditRoles": [
271-
"managers"
272-
],
273-
"canRemoveRoles": [
274-
"managers"
275-
]
369+
"canAdd": {
370+
"type": "roles",
371+
"roles": [
372+
"managers"
373+
]
374+
},
375+
"canSelect": {
376+
"type": "any"
377+
}
276378
}
379+
}
277380
```
278381

279382
## EventHandler

0 commit comments

Comments
 (0)