2017-02-14 54 views
0

我正在学习AWS API网关来管理云中的api,而不是通过express.js。我使用以下集成请求创建了DELETE下的资源使用AWS API删除DynamoDB条目

合并请求

Integration Type: AWS Service 
AWS Region: us-east-1 
AWS Service: DynamoDB 
HTTP method: DELETE 
Action: deleteItem 
Execution role: XXXXXX 
Content Handling: Passthrough 

执行的角色工作,因为我可以读/写DynamoDB。一个身体映射模板具有Content-Type: application/json如下:

{ 
    "TableName": "comments", 
    "Key": { 
     "commentId": { 
      "S": "$context.requestId" 
      }, 
     "pageId": { 
      "S": "$input.path('$.pageId')" 
      }, 
     "userName": { 
      "S": "$input.path('$.userName')" 
     } 
    } 
} 

当我尝试用请求体运行测试如下:

{ 
    "pageId": "breaking-news-story-01-18-2016", 
    "userName": "cacevedo" 
} 

我得到以下信息:

Request: /comments 
Status: 200 
Latency: 80 ms 
Response Body 

Response Body: 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html 
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> 
<title>Page Not Found</title> </head> <body>Page Not Found</body> 
</html> 

有人可以帮我解决这个问题,因为我无法删除该项目。但似乎集成请求正在工作。我错过了什么或做错了什么?

回答

2

只是为了防止任何人遇到同样的问题。 HTTP动词需要是而不是删除并且也是区分大小写的,因此不是使用deleteItem。使用DeleteItem

+0

感谢您的更新! – VDog