Описание: Главный метод создания и обновления элементов в системе — универсальный для любых списков и типов контента. Если в объекте элемента передан id — элемент обновляется, если нет — создаётся новый. Метод также используется другими модулями "под капотом" (например, методом Post модуля "Автоматизация" при формировании внутреннего запроса на обновление элемента).

Особенности:

  • Тело запроса — не обычный JSON, а multipart/form-data: одна часть формы (itemListJson) содержит JSON-массив элементов, остальные части — прикреплённые файлы (каждый со своим именем).
  • Если поле элемента — lookup на список файлов, а значение этого поля в JSON совпадает с именем одного из приложенных в этом же запросе файлов, файл автоматически сохраняется и подставляется в поле как ссылка на созданный файл-вложение — отдельно вызывать методы загрузки файлов не требуется.
  • Если элемент принадлежит архиву документов (документному списку) и передано поле name, для элемента при необходимости выстраивается структура вложенных папок по пути в имени.
  • Поле reference_list в элементе позволяет одновременно с созданием/обновлением самого элемента создать связи (references) от него на другие элементы (см. группу ссылок ниже) — без отдельного вызова /api/reference/Create.
  • Перед сохранением проверяется соответствие лицензионным ограничениям (ValidateLicense) — при превышении лимита лицензий метод вернёт ошибку.

🌐 HTTP-информация

  • Метод: POST
  • URL: /api/item/Update
  • Headers:
    • Content-Type: multipart/form-data
    • Authorization: <UserSessionToken>

📦 Тело запроса (Request Body)

Форма (multipart/form-data):

Часть формыТипОбяз.Описание
itemListJsonstringДаJSON-массив объектов элементов (произвольный набор полей типа контента; id — для обновления существующего элемента, отсутствие id — для создания нового)
(файловые части)файлНетОдин или несколько приложенных файлов; имя файловой части используется для сопоставления со значением lookup-поля на список файлов (см. описание выше)

Пример значения itemListJson:

[
  {
    "id": "622dddbb-2db2-433d-9d3c-89f31ea22e64",
    "content_type_id": "7a1e4b2a-1111-4c2d-9a3f-000000000001",
    "list_id": "8b2f5c3b-2222-4d3e-8a4f-000000000002",
    "parent_id": "8b2f5c3b-2222-4d3e-8a4f-000000000002",
    "name": "Документ.docx"
  }
]

📤 Тело ответа (Response Body)

Массив созданных/обновлённых элементов (IItem[]), в том же порядке, что и в itemListJson.

  • No labels