Работа с данными через HTTP-интерфейс
В этом разделе вы узнаете, как создать таблицу, добавить в нее данные, а затем прочитать их, используя HTTP-интерфейс Document API.
Для выполнения HTTP-запросов в примерах раздела используется утилита cURL
Важно
Через Document API возможен доступ только к документным таблицам.
Перед началом работы
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
-
Подготовьте Document API эндпоинт созданной БД.
Как узнать Document API эндпоинт базы данных
-
Перейдите в консоль управления
. -
Выберите нужный каталог и перейдите в сервис Managed Service for YDB.
-
Выберите базу данных, к которой планируете сделать запрос.
-
В меню слева перейдите в раздел Обзор.
-
Значение эндпоинта указано в строке Document API эндпоинт.
Пример значения эндпоинта
https://docapi.serverless.yandexcloud.net/ru-central1/b1gia87mbaom********/etnudu2n9ri3********
.
Примечание
Для работы в режиме совместимости с Amazon DynamoDB используйте бессерверную (Serverless) конфигурацию БД.
-
-
Установите для переменной окружения
ENDPOINT
подготовленное значение:export ENDPOINT=<Document_API_эндпоинт>
Создание таблицы
Задайте конфигурацию таблицы в файле create.json
:
{
"TableName": "test/pets",
"AttributeDefinitions":
[
{
"AttributeName": "species",
"AttributeType": "S"
},
{
"AttributeName": "name",
"AttributeType": "S"
}
],
"KeySchema":
[
{
"AttributeName": "species",
"KeyType": "HASH"
},
{
"AttributeName": "name",
"KeyType": "RANGE"
}
]
}
Создайте документную таблицу в базе с помощью команды:
curl \
--header 'X-Amz-Target: DynamoDB_20120810.CreateTable' \
--header "Authorization: Bearer $(yc iam create-token)" \
--header "Content-Type: application.json" \
--data @create.json $ENDPOINT
Подробнее о методе CreateTable
читайте в справочнике Document API.
Добавление данных
Подготовьте данные для сохранения в документную таблицу, создав файл put.json
:
{
"TableName": "test/pets",
"Item":
{
"species": {"S": "cat"},
"name": {"S": "Tom"},
"color": {"S": "black"},
"price": {"N": "10.5"}
}
}
Добавьте данные в таблицу с помощью команды:
curl \
--header 'X-Amz-Target: DynamoDB_20120810.PutItem' \
--header "Authorization: Bearer $(yc iam create-token)" \
--header "Content-Type: application.json" \
--data @put.json $ENDPOINT
Подробнее о методе PutItem
читайте в справочнике Document API.
Чтение записи
Чтобы прочитать данные из документной таблицы, выполните команду:
curl \
--header 'X-Amz-Target: DynamoDB_20120810.GetItem' \
--header "Authorization: Bearer $(yc iam create-token)" \
--header "Content-Type: application.json" \
--data '{"TableName": "test/pets", "Key": {"species":{"S":"cat"}, "name":{"S":"Tom"}}}' \
$ENDPOINT
Результат:
{"Item":{"name":{"S":"Tom"},"species":{"S":"cat"},"color":{"S":"black"},"price":{"N":"10.5"}}}
Подробнее о методе GetItem
читайте в справочнике Document API.