Получение снапшота базы данных
Формат запроса
Для получения снапшота базы данных необходимо отправить 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
- Размер базы данных в байтах.