Платформа 3V/Внешний справочник/Как настроить внешний справочник?: различия между версиями
A.griva (обсуждение | вклад) (Новая страница: «{{DISPLAYTITLE:Внешние справочники}} Начиная с релиза 0.26 появилась возможность создавать справ...») |
м (A.saydakova переименовал страницу Платформа 3V/Справочник/Справочники на стороннем API в Содержание/Справочник/Справочники на стороннем API) |
(нет различий)
|
Версия 13:58, 21 апреля 2021
Начиная с релиза 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 }