Сущность

Операции доступные через API

REST API

Пример Curl-запроса

Все элементы

Чтение метаданных

URL: api/item/get/{itemId}
Метод: POST
Описание: получить информацию об элементе по ID элемента
Входные параметры:
itemId: Guid - ID элемента списка
Выходные параметры:
json объект:

{
    id: Guid -  ID элемента
    siteId: Guid -  ID сайта
    listId: Guid -  ID списка
    parentId: Guid -  ID родительского элемента
    itemPath: ItemPath -  путь до элемента + количество дочерних элементов
    сontentTypeId - ID типа контента элемента
    fieldValueMap - объект ключ-значение. Ключ - internalName поля, значение - значение этого поля в элементе
}

curl -X POST http://localhost/api/item/get/ba2bdd08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Создание/изменение

URL: api/item/update
Метод: POST
Описание: Создать/обновить элемент списка (или массив элементов)
Входные параметры:
multipart/form-data

itemListJson - строка, сериализованный в json массив элементов ItemUpdateRequest

{
    list_id: Guid - ID списка, элемент которого нужно создать (обязательное)
    content_type_id: Guid - ID типа контента элемента (обязательное при создании элемента).
    parent_id: Guid - ID родительского элемента.
   ...поля типа контента элемента, которые нужно изменить, например:
    name: "новое имя"
}

curl -X POST http://localhost/api/api/item/update \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: multipart/form-data" \

-F "itemListJson=[{\"list_id\":\"988e62c5-a803-49a0-a1be-e680d130c481\",\"content_type_id\":\"09ad2c16-6047-4dfb-8274-6c4a5f1edbe5\",\"parent_id\":\"dbecdb08-f45c-a51c-a45b-621d530b404a\",\"name\":\"125\"}]"

Удаление

URL: api/item/delete
Метод: POST
Описание: Удалить элемент (массив элементов)
Входные параметры:
itemListJson - строка, сериализованный в json массив элементов

[
    {
        id : Guid - ID первого удаляемого элемента
    },
    {
        id : Guid - ID второго  удаляемого элемента
    },
    ...
]

curl -X POST http://localhost/api/api/item/delete \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: multipart/form-data" \

-F "itemListJson=[{\"id\":\"985e62c5-a803-49a0-a1be-e680d130c481\"}]"

Установить уникальные права доступа к элементу

URL: api/security/setItemUniquePermission/{itemId}
Метод: POST

Описание: Прервать наследование прав/ установить уникальные права доступа к элементу

Входные параметры:
itemId - ID элемента

curl -X POST http://localhost/api/security/setItemUniquePermission/ba2bdd08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Удалить уникальные права доступа к элементу

URL: api/security/removeItemUniquePermission/{itemId}
Метод: POST

Описание: Восстановить наследование прав/ Удалить уникальные права доступа к элементу

Входные параметры:
itemId - ID элемента

curl -X POST http://localhost/api/security/removeItemUniquePermission/ba2bdd08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Назначение прав доступа к элементу пользователю или группе

URL: api/item/update
Метод: POST
Описание: Задать права пользователю на элемент с уникальными правами. Задание прав происходит путем создания элемента «Разрешение пользователя» в списке «Разрывы прав».
Входные параметры:
multipart/form-data

  itemListJson - строка, сериализованный в json массив элементов ItemUpdateRequest

{

  list_id: Guid -  ID списка «Разрывы прав» (обязательное) ,

  content_type_id: Guid – ID типа элемента «Разрешение пользователя» (обязательное),

  source: Guid -  ID элемента, для которого задаются права (обязательное),

  principal: Guid -  ID пользователя или группы (обязательное),

  permission_level: Guid -  ID уровня доступа (обязательное)

}

curl -X POST http://localhost/api/api/item/update \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: multipart/form-data" \

-F "itemListJson=[{\"list_id\":\"ecc16787-6b93-40b9-b563-704d9b090fe8\",\"content_type_id\":\"30a13e40-f715-438d-af7e-cc47cf3a5891\",\"name\":\"Разрывы прав - Архив\",\"source\":\"9336dc08-c31d-80eb-8953-ab990644c4ee\",\"principal\":\"4122dc08-3874-0d28-9f36-57ad441a1cae\",\"permission_level\":\"9d29f390-70d9-4598-816a-68035a0d6d9f\"}]"

Списки

Чтение метаданных

URL: api/list/get/{listId}

Метод: POST

Описание: получить информацию о списке по ID списка

Входные параметры:

listId: Guid - ID списка

Выходные параметры:

json объект

List

{

    id: Guid -  ID списка

    name: string - Название списка

    description: string  - описание списка

}

curl -X POST http://localhost/api/list/get/ba2bса08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Элементы списка

URL: api/item/getList/{parentId}
Метод: POST
Описание: получить информацию о всех дочерних элементах по ID родительского элемента
Входные параметры:
parentId - ID родительского элемента (ID списка или ID папки внутри списка)
Выходные параметры:
json объект:

curl -X POST http://localhost/api/item/getList/ba2bса08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Типы элементов списка

URL: api/contenttype/getByList/{listId}

Метод: POST

Описание: получить информацию о типах контента списка по ID списка

Входные параметры:

listId: Guid - ID списка

Выходные параметры:

json объект

ContentType[] - массив типов контента списка

ContentType

{

    id: Guid -  ID типа контента

    name: string - Название типа контента

    description: string  - описание типа контента

    isFolder: boolean - могут ли элементы этого типа контента содержать в себе дочерние элементы

    fieldList: Field[] - массив полей, которые привязаны к типу контента

}

curl -X POST http://localhost/api/contenttype/getByList/ba2bса08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Папки / элементы

Перемещение

URL: api/item/move/{itemId}/{toItemId}/{moveItemType}
Метод: POST
Описание: Переместить элемент
Входные параметры:

itemId - ID перемещаемого элемента
toItemId - ID элемента назначения
moveItemType - тип перемещения:
1 - выше элемента назначения
2 - в конец дочерних элементов элемента назначения
3 - ниже элемента назначения

curl -X POST http://localhost/api/item/move/f6cedb08-d8ff-f133-81a8-f2e46a45b0b6/31d1db08-ea7d-f7d7-aebe-9356acebcad4/3 \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Файлы


Создание

URL: api/item/update
Метод: POST
Описание: Создать/обновить элемент списка (или массив элементов)
Входные параметры:
multipart/form-data

    itemListJson - строка, сериализованный в json массив элементов ItemUpdateRequest
    fileList - двоичные данные - массив файлов (экземпляр File)

{
    id: Guid -  ID обновляемого элемента. Если создается новый элемент, то это поле не указывается (не обязательное)
    list_id: Guid - ID списка, элемент которого нужно обновить (обязательное)
    content_type_id: Guid - ID типа контента элемента. Указывается только при создании или при изменении типа контента существующего элемента (не обязательное)
    parent_id: Guid - ID типа родительского элемента. Указывается только при создании или при изменении родителя существующего элемента (не обязательное)
    file: int - ID тела файла, индекс из массива fileList . Указывается только при добавлении тела файла или при изменении тела существующего файла (не обязательное)
   ...поля типа контента элемента, которые нужно изменить, например:
    name: "новое имя"
}

curl -X POST http://localhost/api/api/item/update \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: multipart/form-data" \

-F "itemListJson=[{\"list_id\":\"988e62c5-a803-49a0-a1be-e680d130c481\",\"content_type_id\":\"09ad2c16-6047-4dfb-8274-6c4a5f1edbe5\",\"parent_id\":\"dbecdb08-f45c-a51c-a45b-621d530b404a\",\"name\":\"125\",\"file\":\0}]"

-F "fileList=@/path/to/your/file"

Получить список версий файла

URL: api/fileversion/get/{sourceId}

Метод: GET

Описание: получить список версий файла по ID файла

Входные параметры:

sourceId: Guid - ID элемента/файла

Выходные параметры:

массив – список версий файла

curl -X POST http://localhost/api/fileversion/get/ba2ddа08-f633-5666-94f7-a91901fdf3da \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Скачивание файла

URL: api/file/getbyitemid/{itemId}/{version}
Метод: GET
Описание: получить файл по ID элемента/файла
Входные параметры:
itemId: Guid - ID элемента/файла

version: имя версии файла (0.1, 1.0, 1.1, …)
Выходные параметры: тело файла

curl -X POST http://localhost/api/file/getbyitemid/ba2ddа08-f633-5666-94f7-a91901fdf3da/0.1 \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Бизнес-процессы

Создание бизнес-процесса

URL: api/item/update
Метод: POST
Описание: Создать/обновить бизнес-процесс
Входные параметры:
multipart/form-data


itemListJson - строка, сериализованный в json массив элементов ItemUpdateRequest


{

  list_id: Guid – ID списка «Процессы»,

  content_type_id: Guid – ID типа элемента запускаемого процесса,

  name: Наименование создаваемого процесса,

  start_date_plan:дата и время запуска процесса в формате "YYYY-MM-DDThh:mm:ss[.f{1,7}]<TZDSuffix>",

  importance: Guid – ID уровня важности процесса из списка «Важность»,

  workflow_template: Guid – ID шаблона проесса из списка «Шаблоны процессов»,

  ...

  … (поля типа контента процесса, которые нужно изменить),

  reference_list: список вложений рабочего процесса

  [

    {

      content_type_id: Guid – ID типа элемента «Вложение рабочего процесса» из списка «Типы контента»,

      destination: Guid – ID элемента, вкладываемого в процесс

    },

  ]

}

curl -X POST http://localhost/api/api/item/update \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: multipart/form-data" \

-F "itemListJson=[{\"list_id\":\"c63507f9-c892-4685-92e4-97b787199422\",\"content_type_id\":\"fb04dc08-b3fd-99cb-af46-715a5c8bc9ca\",\"name\":\"Согласование документации\",\"start_date_plan\":\"2024-05-02T11:30:39.2560655Z\",\"importance\":\"34ba677c-bd32-4322-a47e-28add7e09a85\",\"initiator\":\"aab39600-92b4-4c38-a55c-53efac8db9cc\",\"workflow_status\":\"e5ac8947-7a27-4a12-8e88-09c297377890\",\"workflow_template\":\"ef17dc08-7d32-6b58-8824-1044d455c17e\",\"approval_user_list_final\":[\"ba2bdc08-f633-5666-94f7-a91901fdf3da\"],\"duration_plan_stage_final\":1,\"reference_list\":[{\"content_type_id\":\"9ea7ecc3-0886-4b4b-9e40-b0a957d689dd\"},\"destination\":\"3001dc08-0eb2-2079-92c8-b5ba016e38e7\"}]}]"

Запуск бизнес-процесса

URL: workflow/api/workflow/start/{processId}

Метод: POST
Описание: Запустить бизнес-процесс

Входные параметры:

processId - Guid – ID запускаемого процесса

curl -X POST http://localhost/api/workflow/start/ba2cdа08-f633-5666-94f7-a91901fdf3da/ \
-H "Authorization: rHltl2jckG8YML9leblSz2PnOdSWuFK7xP8sN9ojOHQ_" \
-H "Content-Type: application/json"

Вход в систему

Получение токена

URL: api/user/login
Метод: POST
Описание: Авторизация
Входные параметры:
json объект

{

  "login": "логин",

  "password": "пароль"

}
Ответ: токен пользователя

(Токен пользователя передается в заголовке Authorization)

curl -X POST http://localhost/api/workflow/start/ba2cdа08-f633-5666-94f7-a91901fdf3da/ \
-H "Content-Type: application/json"

-d '{"login": "mymail@email.ru", "password": "MyPwd123"}'