Skip to content

Commit f3e037d

Browse files
committed
datasource api v2
1 parent a228152 commit f3e037d

File tree

3 files changed

+246
-1
lines changed

3 files changed

+246
-1
lines changed

Diff for: .vitepress/config/ru.mts

+8-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,14 @@ export default defineConfig({
3838
{ text: 'Настройки', link: '/ru/configuration/settings' },
3939
{ text: 'Контекст', link: '/ru/configuration/script-context' },
4040
]
41-
}
41+
},
42+
{
43+
text: 'API',
44+
items: [
45+
{ text: 'Введение', link: '/ru/api/intro' },
46+
{ text: 'DataSource v2', link: '/ru/api/datasource-v2' },
47+
]
48+
},
4249
],
4350

4451
socialLinks: [

Diff for: ru/api/datasource-v2.md

+229
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
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) - человекопонятное описание ошибки

Diff for: ru/api/intro.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Введение
2+
3+
Сервис Tabbled поддерживает RESTful API для работы с данными и конфигурацией платформы.
4+
5+
При выполнении любого метода, необходимо передавать в заголовке запроса токен в виде `Authorization: Bearer {your token}`.
6+
7+
Для получения токена, необходимо создать его в разделе `Настройки` -> `Ключи доступа` и настроить права доступа (см.раздел ...)
8+
9+
API URL `{account}.tabbled.org/api/..`

0 commit comments

Comments
 (0)