'dmsbatch' capability для WebSocket Token API

Содержание

Обзор

Предоставляет интерфейс для проведения групповых CRUD операций с сущностями динамических классов.

Обеспечивает заметную экономию времени на пересылках запросов и ответов между различными машинами на пути от клиента подключения до DMS-сервера при последовательном синхронном выполнении операций.

Общий вид запроса:
[
  "dmsbatch",
  {
    "qid": 0.1234,
    "classpath": "/rest/v1/model/SomeClass",
    "sync": true,
    "timeout": 20000,
    "batches": [
      {
        "operation": "update",
        "id": ...,
        "content": {"someProperty1": ..., "someProperty2": ...}
      },
      {
        "operation": "read",
        "filter": ["==",["property","someProperty1"],...]
      },
      ...
    ]
  }
]
Общий вид ответа:
[
  "dmsbatch_result",
  {
    "qid": 0.1234,
    "result": ok,
    "batches": [
      {
        "result": "ok",
        "content": ...
      },
      {
        "result": "ok",
        "content": ...
      },
      ...
    ]
  }
]

Каждый запрос и соответствующий ему ответ упаковывается в элемент массива batches. Последовательность ответов строго соответствует последовательности запросов. Если какой-то запрос завершается ошибкой, то ошибка также размещается в соответствующей позиции массива batches в ответе. При этом общий result всегда "ok".

В случае таймаута (по умолчанию 60000 = 60 секунд), запросы не успевшие выполниться получают ошибку с кодом таймаута.

На каждый запрос налагаются все те же условия, возможности и ограничения, что и при выполнении отдельного запроса rest к динамическим классам.