AWS API Gateway:如何将多个方法请求参数组合到单个Integration Request参数中

时间:2016-10-07 05:07:09

标签: amazon-s3 aws-api-gateway

我想使用API​​网关作为S3的代理。存储桶由一个复合键控制,复合键由两部分组成,如下所示:[userId] - [documentId]。

UserId作为路径参数来到API网关,documentId作为请求参数出现,例如:[gateway-url]/user1?documentId=doc1

如何将两者结合使用,以便s3查找网址具有以下格式:https://[bucket-url]/user1-doc1

谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 设置您的方法请求以接受路径参数{userid}和查询参数{docid}。
  2. 设置您的集成请求,以接受method.request.querystring.docidmethod.request.path.userid作为网址路径参数。
  3. 最后,将您的集成端点网址设置为https://your-url/ {userid} - {docid}。
  4. 这个swagger片段如下 -

    "paths": {
    "/concat-params/{userid}": {
      "get": {
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "docid",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {...},
        "x-amazon-apigateway-integration": {
          "responses": {...},
          "requestParameters": {
            "integration.request.path.userid":"method.request.path.userid",
        "integration.request.path.docid":"method.request.querystring.docid"
          },
          "uri": "https:.../{userid}-{docid}",
          ...
        }
      }
    }
    

    希望这有帮助, Ritisha。