来自Swagger的AWS API Gateway CORS

时间:2018-06-12 16:27:49

标签: amazon-web-services cors swagger api-gateway

我正在将Swagger文件导入到Terraform创建的AWS API Gateway部署中,除了启用CORS之外,一切似乎都能正常工作。完成部署后,我总是从任何端点收到403 CORS错误。我必须手动然后在AWS控制台中查看启用CORS。

我通过AWS CLI导入swagger文件,如下所示;

aws apigateway put-rest-api \
    --body file://swagger.json \
    --mode overwrite \
    --rest-api-id ${REST_API_ID}

swagger文件使用以下内容来映射正确的标题;

"x-amazon-apigateway-integration": {
   "responses": {
      "2\\d{2}": {
          "statusCode": "200",
          "responseParameters": {
              "method.response.header.Access-Control-Allow-Headers" : "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Correlation-ID'",
              "method.response.header.Access-Control-Allow-Methods" : "'*'",
              "method.response.header.Access-Control-Allow-Origin": "'*'"
           }
       }
    }
}

这映射到顶级Swagger文件中的响应代码;

"responses": {
    "200": {
         "description": "Succesfully created Report",
         "headers": {
             "Access-Control-Allow-Origin": {
                 "type": "string"
              },
              "Access-Control-Allow-Headers": {
                 "type": "string"
              },
              "Access-Control-Allow-Methods": {
                  "type": "string"
              }
          }                        
     }
}

尽管如此,我仍然在导入Swagger文件后直接获得CORS错误。

这里有什么我想念的吗?

0 个答案:

没有答案