REST API

Помимо точек доступа API, описанных в предыдущей статье, в платформе существует ещё несколько методов взаимодействия. Они также являются защищенными парой закрытого и открытого ключа приложения.

Закрытый и открытый ключ приложения В качестве основных параметров POST запросов REST API является appID и appSecret.

Получить их можно через Web-интерфейс платформы в разделе Настройки → Интеграции → Application keys.

Получить объекты определенной структуры. Их можно фильтровать, сортировать и выдавать постранично.

post

https://api.directual.com/good/api/v3/struct/structureName/search?appID=appID&appSecret=appSecret
Request
Response
Request
Body Parameters
fields
optional
string
"id,first_name" — имя опрашиваемого поля для поиска;
filters
optional
string
[{"field":"user","value":"0","exp":"!="}] — фильтр field = поле, value = значение, exp = оператор сравнения;
orders
optional
string
[{"field":"id","direction":"desc"}] — порядок в выдаче объекта. fields = поля для определения порядка, direction = desc | asc — по возрастанию, по убыванию;
orderSize
optional
string
10 — количество сортируемых объектов. (Значение по умолчанию - 500);
fetch
optional
string
user.{id+firstName} — доступ до полей связанного объекта
pageSize
optional
string
количество объектов на странице для создания постраничного списка
Response
200: OK
{
"result": {
"list": [
{
"sid": 1910,
"objectID": "1",
"dateCreated": "2015-05-23T09:21:49Z",
"dateChanged": "2015-08-19T08:19:07Z",
"obj": {
"id": "1",
"first_name": "Иван"
}
}
],
"pageInfo": {
"currentPage": 0,
"pageSize": 10,
"totalPage": 1,
"tableSize": 1,
"currentPageSize": 1
}
},
"status": "OK"
}
Пример
{
"operator": "OR",
"field": "",
"value": "",
"exp": "",
"filters": [
{
"operator": "AND",
"field": "tmc_list_id.category.id",
"value": "30078fd3-213f-459f-8668-c321efc762c1",
"exp": "=="
},
{
"operator": "AND",
"field": "tmc_list_id.category.id",
"value": "Телефоны",
"exp": "=="
}
]
}

Upload

Метод сохраняет необходимый файл (multipart/form-data) во внутреннее файлохранилище (структура fileUpload). Сам файл передаётся в Body с типом form-data, где key = file, value = загруженный файл.

Реализация происходит по средствам отправки POST запроса на URL:

post

https://api.directual.com/good/api/v3/file/upload?appID=appID&appSecret=appSecret
После загрузки файл будет доступен по адресу https://api.directual.com/fileUploaded/finalFileName
Request
Response
Request
Path Parameters
height
optional
integer
Высота изображения. По умолчанию равен ширине. Актуален только если transform = true.
width
optional
integer
Ширина изображения. По умолчанию 500 пикселей. Актуален только если transform = true
transform
optional
изменение размера изображения (актуально только для изображений)
sessionId
optional
ID сессии
appSecret
required
string
Закрытый ключ приложения
appID
required
string
Открытый ключ приложения
Form Data Parameters
file
required
string
Response
200: OK
{
"result": {
"id": "626c38c1-1595-47ec-82aa-278256fab6bb",
"finalFileName": "others/23b69abb-64bf-45df-bbfc-a28631a85b8a.jpg"
},
"status": "OK"
}

Import

Метод осуществляет импорт файла в структуру в формате csv/xls (multipart/form-data) по средствам POST запроса.

Метод будет создавать объекты заданной структуры (название колонок должно совпадать с названием системных полей). От все стилей на листе лучше избавиться. Импортировать можно только 1 лист

post

https://api.directual.com/good/api/v3/struct/structureName/import?appID=appID&appSecret=appSecret
Request
Response
Request
Path Parameters
structureName
required
string
Системное имя таблицы
appID
required
string
Открытый ключ приложения
appSecret
required
string
Закрытый ключ приложения
values
optional
string
Дополнительные статичные поля для обогащения импорта
Response
200: OK
{
"result": {
"insert": 10,
"update": 1,
"lastObjectID": "3d00ccc3-eb6a-403e-8846-961e38341b49"
},
"status": "OK"
}

Meta Info

Метод забирает метаинформацию о структуре (группы, список, типы полей и т.п.).

get

https://api.directual.com/good/api/v3/struct/structureName/metainfo?appID=appID&appSecret=appSecret
Request
Response
Request
Path Parameters
structureName
required
string
Системное имя таблицы
appID
required
string
Открытый ключ приложения
appSecret
required
string
Закрытый ключ приложения
Response
200: OK
{
"result": {
"groups": [
{
"id": 1487317233812,
"name": "Общая информация"
},
{
"id": 1487317752904,
"name": "Счетчики"
},
{
"id": 1492171154945,
"name": "Автоматич. ценообразование"
},
{
"id": 1492592314667,
"name": "Данные по цене"
}
],
"fields": [
{
"sysName": "id",
"dataType": "id",
"name": "ID",
"id": "1429106144700",
"link": "",
"group": "",
"tags": "",
"indexing": false,
"ordering": false,
"linkIndexFieldSysName": [],
},
{
"sysName": "tmc_list_id",
"dataType": "arrayLink",
"name": "Товары",
"id": "1487078160307",
"link": "TMC",
"group": "1487317233812",
"tags": "",
"indexing": true,
"ordering": false,
"linkIndexFieldSysName": [
"name",
"description",
"category.id"
],
}
],
},
"status": "OK"
}

Порядок полей в ответе может быть установлен путем указания веса в настройках структуры.

Get Updates

Метод позволяет получить обновления объекта после необходимого timeStamp.

get

https://api.directual.com/good/api/v4/struct/structureName/getUpdates?appID=appID&appSecret=appSecret
Request
Response
Request
Path Parameters
structureName
required
string
Системное имя таблицы
appID
required
string
Открытый ключ приложения
appSecret
required
string
Закрытый ключ приложения
Body Parameters
id
optional
string
ID опрашиваемого объекта структуры
timestamp
optional
string
timeStamp (время) с которого требуется забирать обновления
fields
optional
string
поля, к которым будет осуществлен доступ
Response
200: OK
{
"result": {
"list": {
"sid": 4611402,
"objectID": "b76b8aaf-4ec4-4cf1-9bfe-bafc991a68ce",
"dateCreated": "2017-05-09T10:12:14Z",
"dateChanged": "2017-06-02T12:58:14Z",
"obj": {
"id":"test",
"webUserId": "test"
},
"version": 1494324734001,
}
},
"status": "OK"
}