Правильный способ удаления объекта в DynamoDB с помощью AWS Amplify Nuxt Project путем вызова API шлюза API
Я создаю веб-приложение, в котором мне нужно получить данные из DynamoDB на AWS. Мое приложение с использованием лямбда-функции AWS для определения API. Когда я пытаюсь удалить запись с помощью этого действия магазина:
async remove({ commit }, { pk, sk }) {
try {
const path = "/artifacts/object/" + pk + "/" + sk
console.log({path});
await API.del(api, path);
const artifacts = this.state.artifacts.artifacts.filter(
item => item.pk !== pk
);
commit('set', artifacts)
}
catch (error) {
console.log({error});
}
}
Я подтверждаю, что URL-адрес правильный, потому что я могу получать доступ и удалять ресурсы из WEB-консоли AWS, используя URL-адрес /artifacts/object/pk/sk
Моя проблема в том, что когда я использую этот код, консоль devtool регистрирует правильный путь, но API Amplify запрашивает запрос на /artifacts/object
и я получаю ошибку 404.
Во всей документации не упоминалось никакой полезной информации.
Вот лямбда-функция для DEL:
app.delete(path + '/object' + hashKeyPath + sortKeyPath, function(req, res) {
var params = {};
if (userIdPresent && req.apiGateway) {
params[partitionKeyName] = req.apiGateway.event.requestContext.identity.cognitoIdentityId || UNAUTH;
} else {
params[partitionKeyName] = req.params[partitionKeyName];
try {
params[partitionKeyName] = convertUrlType(req.params[partitionKeyName], partitionKeyType);
} catch(err) {
res.statusCode = 500;
res.json({error: 'Wrong column type ' + err});
}
}
if (hasSortKey) {
try {
params[sortKeyName] = convertUrlType(req.params[sortKeyName], sortKeyType);
} catch(err) {
res.statusCode = 500;
res.json({error: 'Wrong column type ' + err});
}
}
let removeItemParams = {
TableName: tableName,
Key: params
}
dynamodb.delete(removeItemParams, (err, data)=> {
if(err) {
res.statusCode = 500;
res.json({error: err, url: req.url});
} else {
res.json({url: req.url, data: data});
}
});
});