Data operations through the HTTP interface
In this section, you will learn how to create a table, populate it with data, and then read this data using the Document API HTTP interface.
In our examples below, we will be using cURL
Warning
The Document API only allows you to access document tables.
Getting started
-
If you do not have the Yandex Cloud CLI yet, install and initialize it.
-
Prepare the Document API endpoint of your database.
Where to find the Document API endpoint of a database
-
Navigate to the management console
. -
Select the folder and go to Managed Service for YDB.
-
Select the database you want to query.
-
In the menu on the left, go to the Overview section.
-
The Document API endpoint line shows the endpoint value.
Here is an example of an endpoint value:
https://docapi.serverless.yandexcloud.net/ru-central1/b1gia87mbaomkfvs6rgl/etnudu2n9ri35luqe4h1.
Note
For the Amazon DynamoDB compatibility mode, use a serverless database configuration.
-
-
Set the
ENDPOINTenvironment variable to the prepared value:export ENDPOINT=<Document_API_endpoint>
Creating a table
Specify the table configuration in the create.json file:
{
"TableName": "test/pets",
"AttributeDefinitions":
[
{
"AttributeName": "species",
"AttributeType": "S"
},
{
"AttributeName": "name",
"AttributeType": "S"
}
],
"KeySchema":
[
{
"AttributeName": "species",
"KeyType": "HASH"
},
{
"AttributeName": "name",
"KeyType": "RANGE"
}
]
}
Create a document table in the database using this command:
curl \
--header 'X-Amz-Target: DynamoDB_20120810.CreateTable' \
--header "Authorization: Bearer $(yc iam create-token)" \
--header "Content-Type: application.json" \
--data @create.json $ENDPOINT
For more information about the CreateTable method, see the Document API reference.
Adding data
Prepare the data to save to the document table by creating a file named put.json:
{
"TableName": "test/pets",
"Item":
{
"species": {"S": "cat"},
"name": {"S": "Tom"},
"color": {"S": "black"},
"price": {"N": "10.5"}
}
}
Add the data to the table using this command:
curl \
--header 'X-Amz-Target: DynamoDB_20120810.PutItem' \
--header "Authorization: Bearer $(yc iam create-token)" \
--header "Content-Type: application.json" \
--data @put.json $ENDPOINT
For more information about the PutItem method, see the Document API reference.
Reading a record
To read data from a document table, run this command:
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
Result:
{"Item":{"name":{"S":"Tom"},"species":{"S":"cat"},"color":{"S":"black"},"price":{"N":"10.5"}}}
For more information about the GetItem method, see the Document API reference.