4

我正在尝试使用 AWS API 网关创建 API

  • 首先我创建了一个资源作为 /sample
  • 然后创建了一个方法 GET
  • 提供 Endpoint-URL 并保存。
  • 在 Method Execution 窗格中,选择 Method Request,将 HTTP Request Headers 添加为“Authorization”,添加此以将基本身份验证详细信息传递到后端 url,因为服务受到基本身份验证的保护,
  • 在 Method Execution 窗格中,选择 Integration Request、mapped HTTP Headers、Mapped from as "method.request.path.Authorization"
  • 选择 Method Execution,在 Client 框中选择 TEST,通过 Header Authorization - Basic XXXXXX 成功完成所有配置后,测试 API ,得到“message”:“Internal server error”状态码-500

供您参考,我的后端服务在 amazon-linux 机器上运行。

Checked logs:
   Execution log for request test-request
Tue Sep 08 16:43:54 UTC 2015 : Starting execution for request: test-invoke-request
Tue Sep 08 16:43:54 UTC 2015 : API Key: test-invoke-api-key
Tue Sep 08 16:43:54 UTC 2015 : Method request path: {}
Tue Sep 08 16:43:54 UTC 2015 : Method request query string: {}
Tue Sep 08 16:43:54 UTC 2015 : Method request headers: {Authorization=************p1c2Vy}
Tue Sep 08 16:43:54 UTC 2015 : Method request body before transformations: null
Tue Sep 08 16:43:54 UTC 2015 : Execution failed due to configuration error: Invalid endpoint address

你能告诉我如何解决这个问题吗?

4

3 回答 3

1

Varun 是对的,您的映射表达式是错误的。

请求中参数的表达式格式为“method.request.[source].[name]”,其中 source 是 path/querystring/header,name 是方法请求中定义的参数名称。

对于集成响应,格式与您将 request 替换为 response 的格式相同,还请注意,只有标头可用于在响应中映射。

于 2015-12-17T23:35:03.540 回答
1

试试method.request。标头.Authorization

于 2015-11-20T22:17:58.233 回答
0

如果您想要快速修复以开始并让您的 API 正常工作,请按照以下步骤操作:

脚步

  • 登录 AWS 控制台
  • 转到“API Gateway”仪表板,选择您需要调用的资源(API),然后选择下面的方法(GET/POST/...)
  • 在方法执行工作流程中,单击“方法响应面板”并添加状态代码 200,然后您可以为此添加一些标题。选择“响应正文”并添加“应用程序/json”和“空”模型。

在此处输入图像描述

  • 您还应该单击“集成请求面板”并取消选中“使用 Lambda 代理集成”[根据附图]

在此处输入图像描述

最后一步

  • 将您的 API 部署到阶段(开发/测试/产品)
于 2017-05-13T08:41:28.597 回答