Возврат всех элементов или одного элемента из DynamoDB с конечной точки AWS API Gateway

#amazon-web-services #amazon-dynamodb #aws-api-gateway

Вопрос:

Я использую прокси-сервер AWS со шлюзом API AWS для взаимодействия с таблицей DynamoDB. У меня есть ресурс API, в котором у меня есть метод GET с приведенной ниже конфигурацией:

Описание метода API

API использует Scan действие, как показано выше, для извлечения всех элементов из таблицы DynamoDB. У меня также есть следующий шаблон сопоставления интеграции запросов;

 {
    "TableName": tableName
}
 

Это действительно просто. Но моя проблема в том , что я хотел бы добавить еще один метод GET, чтобы получить каждый элемент по своему id , который будет указан в URL как a param . Однако, поскольку я уже настроил один метод GET, я не могу настроить другой для извлечения только одного элемента. Я знаю, что могу использовать шаблоны сопоставления и Scan , как указано в документах, для условной выборки элементов, если задан параметр, но это означало бы сканирование всей таблицы, что является пустой тратой времени каждый раз, когда я хочу получить один элемент.

Есть ли какой-нибудь другой способ сделать это?

Комментарии:

1. Обычно вы создаете для него новый ресурс, например /contact .

2. Было бы разумно, чтобы GET ‘/contacts’ извлек список контактов, в то время как GET ‘/contacts/:id’ извлекал бы контакт по его идентификатору. Вам нужно определить другой маршрут вместо встраивания логики маршрутизации в шаблон сопоставления.