Внешние справочники

Материал из 3v-wiki
< Платформа 3V‎ | Внешний справочник
Версия от 12:14, 20 ноября 2020; A.griva (обсуждение | вклад) (Новая страница: «{{DISPLAYTITLE:Внешние справочники}} Начиная с релиза 0.26 появилась возможность создавать справ...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Начиная с релиза 0.26 появилась возможность создавать справочники на стороннем API. Есть ограничения которые накладываются на стороннее API

  • API должен реализовывать методы по чтению данных GetData следующей сигнатуры:

Post запрос с параметров в Url source который содержит в себе идентификатор источника данных. Тело запроса:

 1 {
 2   "fields": [
 3     "field1",
 4     "field2",
 5     ...
 6   ],
 7   "filters": [
 8     {
 9       "fieldName": "field3",
10       "values": [
11         1, 2, 3
12       ],
13       "conditionType": "InCollection"
14     }
15   ],
16   "orderFields": [
17     {
18       "fieldName": "field4",
19       "sortDirection": "Ascending",
20       "nullsSortingMode": "PlaceFirst"
21     }
22   ],
23   "limit": 100
24 }

Где fields - коллекция идентификаторов полей которые будут отданы в ответе (обязательное для заполнения). filters - коллекция фильтров (опционально). Каждый фильтр состоит из fieldName - идентификатора поля на которое накладывается условие, values - коллекция значений, conditionType - тип накладываемого условия.
Для conditionType допустимы следующие значения:

Значение Описание
Default Условие по умолчанию. Фильтрация по In.
InCollection Условие вхождения.
NotInCollection Не входит в коллекцию.
Equal Равно.
NotEqual Не равно.
IsNull Равно null.
NotNull Не null.
More Больше.
MoreOrEqual Больше или равно.
Less Меньше.
LessOrEqual Меньше или равно.

orderFields - коллекция для сортировки значений. Каждая настройка сортировки содержит fieldName - идентификатор поля по которому будет идти сортировка, sortDirection - направление сортировки, nullsSortingMode обработка null при сортировке.
Для sortDirection допустимы следующие значения:

Значение Описание
Ascending По возрастанию.
Descending По убыванию.

Для nullsSortingMode допустимы значения:

Значение Описание
PlaceFirst Размещать null в начале.
PlaceLast Размещать null в конце.

limit - ограничение на кол-во возвращаемых строк. (Опционально)


  • API может реализовывать метод по сохранению данных SaveData:

Post запрос с параметров в Url source который содержит в себе идентификатор источника данных. Тело запроса:

 1 {
 2   "sourceId": "SourceId",
 3   "values": [
 4     {
 5       "keyValues": [
 6         "KEY"
 7       ],
 8       "fieldName": "VALUE1",
 9       "rowsData": [
10         [
11           1, 2, 3
12         ]
13         [
14           111, 222, 333
15         ]
16       ]
17     }
18   ]
19 }

Где sourceId дублирует значение из параметра source.
В values задается коллекция сохраняемых значений. keyValues - коллекция идентификаторов полей по которым можно однозначно определить строку данных. fieldName - поле которое изменяется. rowsData - коллекция значений, где в начале идут значения по столбцам из keyValues в том же порядке, а в элементе коллекции идут значения для столбца fieldName.

  • API может реализовывать метод GetStructure по получению структуры источника данных по его идентификатору. Это должен быть Get запрос с параметром source - идентификатор источника.

Данный метод используется в методе /api/Dictionaries/CreateExternalDictionaryModel API справочников в случае указания connectionId - идентификатора объекта репозитория соединения настроенного на сторонний сервис. Пример такого объекта соединения:

1 {
2   "dbType": "Web",
3   "connectionString": "http://audit/api/AuditDataSource/"
4 }