使用HTTP代理了解AWS API网关

时间:2016-08-02 11:21:22

标签: aws-api-gateway

我是API网关的新手。我在EC2服务器上部署了基于python的API。我可以将其作为网址http://xxx.xxxxxxx.com/RPC2/来访问。我可以看到此URL中的对象,方法。我正在尝试使用API​​网关。

  1. 创建API。 (ExampleAPI)
  2. 创建了POST方法。 (给定路径http://xxx.xxxxxxx.com/RPC2/作为终点URL)。我没有创建资源,因为我期望资源的所有方法的HTTP代理。当我将我的内容放入请求正文时,它看起来很好。我收到了回复。
  3. 现在我已将它部署到一个阶段dev1。获得了新的端点URL。
  4. 还创建了一个API密钥并将其与dev1一起附加。另外在POST方法请求中设置API密钥为true。
  5. 问题。 1.当我点击dev1网址(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. 如果我卷曲-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的唯一方法,或者我可以创建单独的方法或字符串参数。

    4. 此致 Ashish

1 个答案:

答案 0 :(得分:1)

查看发布到this forum的答案:

  
    
        
  1. 当我点击dev1网址(https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1)时,它没有给出     我和http://xxx.xxxxxxx.com/RPC2/的页面相同。它给了我     {"消息":"缺少身份验证令牌"}错误。我错过了一些     基本面在这里?
  2.        
     

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

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

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

     
    
        
  1. 我如何在这里使用API​​密钥?或者它在POST方法中不起作用?因为从curl访问时,没有API密钥就可以正常工作。
  2.        
     

首先,您应该在方法上设置API Key Required(方法请求   页面),然后您必须将API Stage添加到API Key并制作   确定它已启用。毕竟,如果您在标头中发送API密钥   叫做' x-api-key'它应该工作,否则你应该得到403   回应说"禁止"。

     
    
        
  1. 如果我做"卷曲-H"内容类型: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或我可以创建单个方法或字符串     parametrs。
  2.        
     

您必须在API网关(如GET)中创建每个方法   都可以指向相同的后端URL,但指定不同的RPC   标题中的操作或指定的位置。

     

我建议您查看参与者的公共开发人员指南   映射和有效负载转换,以了解我们在API中使用的工具   网关。