Метод GetItem
Статья создана
Обновлена 12 июля 2022 г.
Возвращает набор атрибутов для элемента с указанным первичным ключом.
Если нужный элемент не найден, то ничего не вернется.
По умолчанию метод возвращает потенциально согласованные данные из таблицы. Если нужны строго согласованные данные, то необходимо установить параметр ConsistentRead=true
.
Запрос
Запрос содержит данные в формате JSON.
{
"AttributesToGet": [ "string" ],
"ConsistentRead": boolean,
"ExpressionAttributeNames": {
"string" : "string"
},
"Key": {
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
},
"ProjectionExpression": "string",
"ReturnConsumedCapacity": "string",
"TableName": "string"
}
Параметры
Параметр | Описание |
---|---|
Key |
Ассоциативный массив атрибутов вида ключ/значение, представляющих первичый ключ извлекаемого элемента. Для первичного ключа необходимо указать все его ключевые атрибуты. Для простого ключа нужно указать только его значение. Для составного первичного ключа нужно указать значение ключа раздела и ключа сортировки. Тип: объект типа AttributeValue Длина: 1 - 65535 символов Обязательно: Да |
TableName |
Имя таблицы, содержащий извлекаемый элемент. Может содержать путь в иерархии каталогов вида path/to/table. Тип: Строка Длина: 3 - 255 символов. Шаблон: [a-zA-Z0-9_.-]+ Обязательно: Да |
ConsistentRead |
Определение модели согласованности чтения. Если true , то используется строго согласованное чтение; если false (по умолчанию), то используется последовательное чтение.Тип: Boolean Обязательно: Нет |
ExpressionAttributeNames |
Заполнитель (placeholder), который можно использовать в выражении вместо имени атрибута. Заполнитель должен начинаться с символа решетки # .В каких случаях это может пригодиться:
Percentile конфликтует с зарезервированным словом, и его нельзя в явном виде использовать в выражении. Чтобы обойти эту проблему, нужно в параметре ExpressionAttributeNames указать заполнитель: {"#P":"Percentile"} . И затем вместо настоящего имени атрибута использовать #P .Тип: Строка Длина: 1 - 65535 символов. Обязательно: Нет |
ProjectionExpression |
Выражение, определяющие атрибуты для извлечения. Атрибуты в выражении должны быть разделены запятыми. Если имена атрибутов не указаны явно, то возвращаются все атрибуты элемента. Тип: Строка Обязательно: Нет |
ReturnConsumedCapacity |
Нужно ли возвращать информацию о потребляемой мощности.
Тип: Строка Возможные значения: TOTAL | NONE Обязательно: Нет |
Ответ
В случае успеха вернется HTTP с кодом 200.
Запрос возвращает данные в формате JSON.
{
"ConsumedCapacity": {
"CapacityUnits": number,
"GlobalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"LocalSecondaryIndexes": {
"string" : {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
}
},
"ReadCapacityUnits": number,
"Table": {
"CapacityUnits": number,
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
},
"TableName": "string",
"WriteCapacityUnits": number
},
"Item": {
"string" : {
"B": blob,
"BOOL": boolean,
"BS": [ blob ],
"L": [
"AttributeValue"
],
"M": {
"string" : "AttributeValue"
},
"N": "string",
"NS": [ "string" ],
"NULL": boolean,
"S": "string",
"SS": [ "string" ]
}
}
}
Параметры
Параметр | Описание |
---|---|
ConsumedCapacity |
Единицы мощности, потребленные операцией удаления. Возвращается только в том случае, если в запросе был указан параметр ReturnConsumedCapacity со значением TOTAL .Тип: объект типа ConsumedCapacity |
Item |
Набор атрибутов запрашиваемого элемента. Тип: Ассоциативный массив типа AttributeValue .Длина: 1 - 65535 символов |
Ошибки
Параметр | Описание |
---|---|
InternalServerError |
Произошла внутренняя ошибка на стороне сервера. Код состояния HTTP: 500 |
ProvisionedThroughputExceededException |
Вы слишком часто отправляете запросы. Попробуйте увеличить интервалы между запросами. Если таких запросов будет не слишком много, Managed Service for YDB постарается обработать их все. Код состояния HTTP: 400 |
RequestLimitExceeded |
Пропускная способность превышает квоту. Код состояния HTTP: 400 |
ResourceNotFoundException |
Указанная таблица не существует. Код состояния HTTP: 400 |
Также могут возникать Общие ошибки, одинаковые для всех методов.