我是API网关的新手。我在EC2服务器上部署了基于python的API。我可以作为URL访问http://xxx.xxxxxxx.com/RPC2/.我可以在这个URL中看到对象和方法。我正在尝试使用API网关相同。
- 已创建API。(ExampleAPI)
- 已创建POST方法。(给定路径http://xxx.xxxxxxx.com/RPC2/作为端点URL)。我还没有创建该资源,因为我希望该资源的所有方法都有HTTP代理。当我把我的内容放在请求正文中时,它看起来很好。我得到了回应
- 现在我已经将它部署到一个阶段dev1。获取了一个新的终结点URL
- 还创建了一个API密钥,并将其与dev1一起附加。同时在POST方法请求中将API密钥required设置为true
问题。1.当我点击dev1 URL时(https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1),它给我的页面与http://xxx.xxxxxxx.com/RPC2/.它给我{"消息":"缺少身份验证令牌"}错误。我是不是遗漏了一些基本知识?
-
http://xxx.xxxxxxx.com/RPC2/确实有几种方法,那么我该如何使用呢?所有这些都是POST方法。我可以设置一些参数、一些请求正文或一些模板吗?如何改进此过程?
-
如何在此处使用API密钥?或者它在POST方法中不起作用?
-
如果我做curl-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的唯一方法,还是我可以创建单独的方法或字符串参数。
谨致问候,Ashish
查看此论坛上发布的答案:
- 当我点击dev1 URL时(https://xxxxxxxxxxx-api.us-east-1.amazonaws.com/dev1),它不给我的页面与http://xxx.xxxxxxx.com/RPC2/.它给了我{"消息":"缺少身份验证令牌"}错误。我是不是错过了一些这里的基本原理
如果你用GET方法在浏览器中点击URL,它不会工作您必须在资源上指定所有HTTP方法您希望客户端访问。如果您命中的方法不是定义了,你就会得到这个信息。
- http://xxx.xxxxxxx.com/RPC2/确实有几种方法,那么我该如何使用呢?它们都是POST方法。我可以设置一些参数吗一些请求正文或一些模板。我该如何改进这个过程
是的,如果您正在映射到RPC API,那么您可以构建REST方法/资源,并为标头设置静态值或者在主体中,无论RPC操作是由后端预期的。
- 如何在此处使用API密钥?或者它在POST方法中不起作用?因为当从curl访问时,它在没有API密钥的情况下工作得很好
首先,您应该在方法上设置API Key Required(方法请求页面),然后您必须将API阶段添加到API密钥中,并使确保已启用。在所有这些之后,如果您在头中发送API密钥名为"x-api-key",它应该有效,否则你应该得到403回复说"禁止"。
- 如果我做"curl-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,或者我可以创建单独的方法或字符串参数
您必须在API网关中创建每个方法(如GET)可以全部指向相同的后端url,但指定不同的RPC在标头中或指定的任何位置执行操作。
我鼓励您查看公共开发人员指南中的参数映射和有效负载转换,以了解我们在API中拥有哪些工具网关。