【问题标题】:Understanding AWS API Gateway with HTTP Proxy使用 HTTP 代理了解 AWS API Gateway
【发布时间】:2016-12-07 17:25:12
【问题描述】:

我是 API 网关的新手。我在 EC2 服务器上部署了基于 python 的 API。我可以通过 URL http://xxx.xxxxxxx.com/RPC2/ 访问它。我可以在这个 URL 中看到对象、方法。我正在尝试使用 API 网关。

  1. 已创建 API。 (示例 API)
  2. 已创建 POST 方法。 (给定路径 http://xxx.xxxxxxx.com/RPC2/ 作为端点 URL)。我没有创建资源,因为我期望资源的所有方法都使用 HTTP 代理。当我将内容放入请求正文时,它看起来不错。我收到了回复。
  3. 现在我已将它部署到一个阶段 dev1。获得了新的端点 URL。
  4. 还创建了一个 API 密钥并将其附加到 dev1。还要在 POST Method Request 中设置 API key required true。

问题。 1. 当我点击 dev1 URL (https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1) 时,它没有给我与http://xxx.xxxxxxx.com/RPC2/ 相同的页面。它给了我 {"message":"Missing Authentication Token"} 错误。我在这里缺少一些基础知识吗?

  1. http://xxx.xxxxxxx.com/RPC2/ 确实有几种方法,那我该如何使用呢?它们都是 POST 方法。我可以设置一些参数或一些请求正文或一些模板吗?我该如何改进这个过程?

  2. 如何在此处使用 API 密钥?还是在 POST 方法中不起作用?

  3. 如果我做 curl -H "Content-Type: application/JSON" -X POST -d "{\"method\": \"app.menu\",\"params\":[] }" https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1 我得到与我 curl http://xxx.xxxxxxx.com/RPC2/ 相同的响应。这是访问我的 dev1 URL 的唯一方法,还是我可以创建单独的方法或字符串参数。

问候, 灰烬

【问题讨论】:

标签: aws-api-gateway


【解决方案1】:

查看发布到this forum的答案:

  1. 当我点击 dev1 URL (https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1) 时,它不给 我与http://xxx.xxxxxxx.com/RPC2/ 相同的页面。它给了我 {"message":"缺少身份验证令牌"} 错误。我错过了一些吗 基本原理在这里?

如果您在浏览器中使用 GET 方法访问 URL,则不会 工作。您必须在资源上指定所有 HTTP 方法 您希望客户端访问。如果您遇到的方法不是 已定义,您会收到该消息。

  1. http://xxx.xxxxxxx.com/RPC2/ 确实有几种方法,那我该如何使用呢?它们都是 POST 方法。我可以设置一些参数或 一些请求正文或一些模板。我该如何改进这个过程。

是的,如果您要映射到 RPC API,那么您可以构建 REST API Gateway 中的方法/资源并为标头设置静态值 或在正文中,即后端期望 RPC 操作的任何位置。

  1. 如何在此处使用 API 密钥?或者它不会在 POST 方法中工作?因为当从 curl 访问时,它可以在没有 API 密钥的情况下正常工作。

首先你应该在方法上设置 API Key Required (Method Request 页面),然后您必须将 API 阶段添加到 API 密钥并制作 确定它已启用。毕竟,如果您在标头中发送 API Key 称为“x-api-key”它应该可以工作,否则你应该得到一个 403 回复说“禁止”。

  1. 如果我执行 "curl -H "Content-Type: application/json" -X POST -d "{\"method\": \"app.menu\",\"params\":[] }" https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1" 我也一样 当我卷曲 http://xxx.xxxxxxx.com/RPC2/ 时做出回应。这是唯一的方法吗 访问我的 dev1 URL,或者我可以创建单独的方法或字符串 参数。

您必须在 API Gateway 中创建每个方法(如 GET),并且它们 都可以指向相同的后端 url 但指定不同的 RPC 标题中的操作或指定的任何位置。

我建议您查看公共开发人员指南以获取参数 映射和有效负载转换以了解我们在 API 中有哪些工具 网关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多