AWS API网关-HTTP通行路径参数



我正在尝试API网关中的HTTP PassThrough功能,将资源方法传递到另一个API。我想从API网关URL穿过路径参数到也需要那些路径参数的后端API。

我有以下简单的摇动文档,试图测试以下内容:

{
  "swagger": "2.0",
  "info": {
    "version": "2017-09-15T03:33:48Z",
    "title": "api-gateway-http-test"
  },
  "schemes": [
    "https"
  ],
  "paths": {
    "/subresource/{name}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          }
        },
        "x-amazon-apigateway-integration": {
          "uri": "http://my.web.service.url/subresource/{name}",
          "passthroughBehavior": "when_no_match",
          "httpMethod": "GET",
          "type": "http_proxy",
          "requestParameters": {
            "integration.request.path.name": "method.request.path.name"
          }
        }
      }
    }
  },
  "definitions": {
    "Empty": {
      "type": "object",
      "title": "Empty Schema"
    }
  }
}

当我尝试通过CloudFormation部署到API网关时,API网关给我这个错误:

Unable to put integration on 'GET' for resource at path '/subresource/{name}': 
Invalid mapping expression specified: 
Validation Result: 
warnings : [], errors : [Invalid mapping expression parameter specified: method.request.path.name]

我在线查看了各种来源,这种配置" RequestParameters"部分的方式似乎是通过路径参数传递到后端API的推荐方法。

我在这里错过了什么会导致这种情况不起作用?

它缺少参数定义。

使用以下内容查看

{
  "swagger": "2.0",
  "info": {
    "version": "2017-09-15T03:33:48Z",
    "title": "api-gateway-http-test"
  },
  "schemes": [
    "https"
  ],
  "paths": {
    "/subresource/{name}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "schema": {
              "$ref": "#/definitions/Empty"
            }
          }
        },
        "x-amazon-apigateway-integration": {
          "uri": "http://google.com/subresource/{name}",
          "passthroughBehavior": "when_no_match",
          "httpMethod": "GET",
          "type": "http_proxy",
          "requestParameters": {
            "integration.request.path.name": "method.request.path.name"
          }
        }
      }
    }
  },
  "definitions": {
    "Empty": {
      "type": "object",
      "title": "Empty Schema"
    }
  }
}

相关内容

  • 没有找到相关文章

最新更新