AWS API Gateway: как объединить несколько параметров запроса метода в один параметр запроса интеграции

Я хотел бы использовать API Gateway в качестве прокси для S3. Сегмент задается составным ключом, состоящим из двух частей: [userId]-[documentId].

UserId поступает в API Gateway как параметр пути, documentId — как параметр запроса, например: [gateway-url]/user1?documentId=doc1

Как я могу объединить их, чтобы URL-адрес поиска s3 имел следующий формат: https://[bucket-url]/user1-doc1?

Спасибо.


person iparips    schedule 07.10.2016    source источник


Ответы (1)


  1. Настройте запрос метода, чтобы принять параметр пути {userid} и параметр запроса {docid}.
  2. Настройте свой запрос на интеграцию, чтобы он принимал как method.request.querystring.docid, так и method.request.path.userid в качестве параметров URL-адреса.
  3. Наконец, настройте URL-адрес конечной точки интеграции как https://your-url/{userid}-{docid}.

Фрагмент чванства для этого выглядит следующим образом:

"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}",
      ...
    }
  }
}

Надеюсь, это поможет, Ритиша.

person Ritisha - AWS    schedule 11.10.2016