Поиск записей

При необходимости поиска записей, удовлетворяющих некоторому условию, следует выполнить запрос по адресу <hostname>/data/bulk/<object>?q={query} методом GET, в котором:

  • <hostname> – адрес сервиса Blitz REST API Server. Например: http://localhost:8080/api;
  • <object> – объект, к которому относятся искомые записи;
  • в качестве {query} указан поисковый запрос, сформированный на языке RQL (См. также здесь). Следует отметить, что хотя на языке RQL запросы and(arg1,arg2,arg3) и arg1,arg2,arg3 эквиваленты, рекомендуется использовать первый вариант.

Пример поискового запроса:

GET /api/data/bulk/person?q=like(name,Test%25) HTTP/1.1
Host: localhost:8080
Cache-Control: no-cache

Пример ответа на поисковый запрос:

{
    "objs": [
        {
            "cas": 1,
            "gender": "M",
            "id": 1,
            "name": "Test User"
        },
        {
            "cas": 1,
            "gender": "M",
            "id": 2,
            "name": "Test User New"
        },
        {
            "cas": 1,
            "gender": "M",
            "id": 3,
            "name": "Tester"
        }
    ],
    "status": "OK"
}

При наличии вложенных объектов также можно регулировать глубину отображения данных (параметр depth).

Добавление массива записей

При необходимости добавления множества записей следует выполнить запрос по адресу <hostname>/data/bulk/<object> методом PUT. Этот запрос аналогичен запросу на добавление отдельного объекта, за исключением того, что в json должен быть указан массив записей.

Пример запроса:

PUT /api/data/bulk/person HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Cache-Control: no-cache

[
{
    "name": "Test User",
    "gender": "M",
    "contacts": [{
      "typ":"EML",
      "value": "mail@example.com"
    }]
},
{
    "name": "Test User New",
    "gender": "M",
    "contacts": [{
      "typ":"EML",
      "value": "new@example.com"
    }]
},
{
    "name": "Tester",
    "gender": "M",
    "contacts": [{
      "typ":"EML",
      "value": "tester@example.com"
    }]
}
]

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

Изменение массива записей

Для изменения массива записей необходимо выполнить запрос по адресу <hostname>/data/bulk/<object> методом POST. Этот запрос аналогичен запросу на изменение отдельного объекта, за исключением того, что в json должен быть указан массив записей.

Удаление записи

Для удаления массива записей необходимо выполнить запрос по адресу <hostname>/data/bulk/<object> методом DELETE, в котором:

  • <hostname> – адрес сервиса Blitz REST API Server. Например: http://localhost:8080/api;
  • <object> – объект, к которому относятся удаляемые записи;
  • в теле запроса должен быть указан json с перечнем идентификаторов удаляемых записей.

Пример запроса на удаление записей:

DELETE /api/data/bulk/person HTTP/1.1
Host: localhost:8080
Cache-Control: no-cache

[
  {
    "id": 1234
  },
  {
    "id": 1235
  }  
]

Особенности исполнения пакетных операций

Для обеспечения транзакционности операций они выполняются на потоке. Это означает, что операция выполняется последовательно, но она считается завершенной только после того, как сервис возвращает результат – "status": "OK".

Если сервис возвращает результат FAILED, то это означает, что были отклонены все операции, входившие в пакет.