Получение снапшота базы данных

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

Формат запроса

Для получения снапшота базы данных необходимо отправить GET-запрос по URL:

https://cloud-api.yandex.net/v1/data/<context>/databases/<database_id>/snapshot/?
    [fields=<значение>]
   &[collection_id=<значение>]
<context>
Контекст базы данных (подробнее см. в разделе Структура хранилища).
<database_id>
Идентификатор базы данных.
fields (необязательный)
Список запрашиваемых атрибутов базы данных. Атрибуты перечисляются через запятую.
collection_id (необязательный)
Идентификаторы коллекций, по которым необходимо фильтровать записи базы данных. Коллекции перечисляются через запятую.

Заголовки

В заголовке Authorization необходимо указать авторизационный токен.

Формат ответа

В случае успеха сервер возвращает статус 200 OK. В теле ответа передается снапшот базы данных для текущей ревизии. Снапшот представлен в формате JSON или Protocol Buffers. В заголовке ETag содержится номер текущей ревизии базы данных.

Примеры запроса и ответа сервера приведен ниже.

Возможные ошибки

Код ошибки Описание

400

Указан неверный контекст базы данных.

401

Клиент не авторизован

403

Доступ запрещен. Возможно, у приложения недостаточно прав для данного действия.

404

Ресурс не найден.

406

Формат передаваемых данных не поддерживается.

429

Клиент слишком часто отправляет запросы.

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

Код ошибки Описание

400

Указан неверный контекст базы данных.

401

Клиент не авторизован

403

Доступ запрещен. Возможно, у приложения недостаточно прав для данного действия.

404

Ресурс не найден.

406

Формат передаваемых данных не поддерживается.

429

Клиент слишком часто отправляет запросы.

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

Формат ответа в случае ошибки описан в соответствующем разделе справочника.

Пример

Получение снапшота базы данных с идентификатором organizer:

curl -X GET -H "Authorization: OAuth <авторизационный токен>" -H "Content-Type: application/json" "https://cloud-api.yandex.net/v1/data/app/databases/organizer/snapshot/"

Ответ сервера:

HTTP/1.1 200 OK
ETag: 1
...
{
  "handle": "uQtwtHiopt8I2P3Q14733932UFq45WLpQRAwWkwiR1460984922143",
  "records_count": 1,
  "created": "2014-10-28T14:54:20.118000+00:00",
  "modified": "2015-03-05T13:35:58.326000+00:00",
  "records": {
    "items": [
      {
        "record_id": "20.05.2016",
        "collection_id": "Friday",
        "fields": [
          {
            "field_id": "duration",
            "value": {
              "type": "string",
              "string": "120 min"
            }
          },
          {
            "field_id": "event_type",
            "value": {
              "type": "string",
              "string": "Meeting"
            }
          },
          {
            "field_id": "hour",
            "value": {
              "type": "datetime",
              "datetime": "2016-05-20T15:00:00.118000+00:00"
            }
          }
        ],
        "revision": 1
      }
    ]
  },
  "database_id": "organizer",
  "revision": 1,
  "size": 1196
}
handle
Уникальный идентификатор базы, который генерирует сервер. При удалении и создании базы этот идентификатор изменяется.
records_count
Количество записей в базе данных.
created
Дата и время создания.
modified
Дата и время последней модификации.
records
Записи базы данных.
items
Массив объектов, содержащих записи.
record_id
Идентификатор записи, к которой применялось изменение.
collection_id
Идентификатор коллекции, которой принадлежит запись.
fields
Список полей записи.
field_id
Идентификатор поля.
value
Новое значение поля.
revision
Номер ревизии после последних изменений текущей записи.
database_id
Идентификатор базы данных.
revision
Номер текущей ревизии базы данных.
size
Размер базы данных в байтах.