使用亚马逊的API网关我可以创建一个端点来调用输出纯文本的lambda函数。但是,当我在端点上发出请求时,输出会返回默认内容类型“application/json”。这将输出用引号括起来的纯文本响应。我想将响应标题更改为“text/plain”,所以它只输出解开引号的文本。有谁知道如何做到这一点?从亚马逊API网关端点输出纯文本内容
回答
所以我设法让这个工作。
在合并响应,你需要添加类型“text/plain的”
的一个新的映射模板在框中输入模板类型:
$input.path('$')
或路径中的价值您想要返回并保存新的映射模板(请勿选择模型!)
然后,您需要重新部署API以使更改生效。
我已经有一件事了,方法响应也使用Empty模型设置为“text/plain”。我不确定这是否有效,但如果上述不起作用,只需将其添加进去即可。
当试图返回XML时,这也很有用。我将映射模板设置为“application/xml”,在我的代码中,我有'context.succeed('
这可以节省我几个小时。应该是选择的答案。 –
Anthony的方式仍在输出字符串中留下引号。因此,回顾一下,在集成响应中,为text/plain
类型创建一个新的映射模板。它应该有值:
$input.path('$')
现在,如果你运行context.succeed("somestring")
,输出会"somestring"
,用引号引用。这是因为它被串化为一个json术语。作为一个讨厌的解决方法,你可以这样做:
var base = JSON.stringify;
JSON.stringify = function(given) {
JSON.stringify = base;
return given;
}
context.succeed("somestring");
作为一个侧面说明,您可以通过console.log(context.succeed)
读书获得更多的提示。
因此,我使用的方法是JSONPath,因此input.path('$')引用了JSON路径元素,但是您需要返回有效的JSON: {“value”:“something” } –
- 1. 亚马逊WAF +亚马逊API网关
- 2. 部署API亚马逊API网关
- 3. 亚马逊网络服务 - API网关
- 4. Bash脚本创建主机文件从亚马逊api输出
- 5. 亚马逊从API
- 6. 亚马逊网关API和JAVA
- 7. 亚马逊支付网关
- 8. 如何从POST从亚马逊API网关
- 9. 亚马逊EMR的输出文件夹
- 10. SignatureDoesNotMatch亚马逊API
- 11. 亚马逊Kindle API
- 12. 亚马逊API类
- 13. 亚马逊云硬盘API节点API
- 14. 亚马逊云端硬盘REST api端点
- 15. 亚马逊网络服务和非亚马逊网站
- 16. 亚马逊API创建网站
- 17. 消毒内容:从亚马逊的内容中删除标记
- 18. 在亚马逊api网关中使用api密钥
- 19. 根据亚马逊的内容类型列出文件s3
- 20. 亚马逊s3或云端
- 21. 亚马逊API未返回结果与亚马逊网站结果对齐
- 22. 亚马逊API搜索结果与亚马逊网站搜索结果
- 23. 亚马逊产品广告API - 样本
- 24. 亚马逊API网关的.NET核心vs实施自己的API网关?
- 25. 亚马逊EC2账单API?
- 26. 亚马逊API MWS SignatureDoesNotMatch
- 27. 亚马逊API - MaxAggregateShipQuantity与MaxOrderQuantity
- 28. 亚马逊MWS API:_POST_PRODUCT_DATA_
- 29. 亚马逊加盟api
- 30. 亚马逊搜索API
我设法改变内容类型,但不删除引号,任何消息? – Korri
我还没有取得任何进展。我觉得亚马逊试图阻止你输出纯文本内容。看起来他们允许您从JSON转换为XML,这使我相信您可以转换为任何内容类型。我无法在他们的营销材料或文档中找到任何明确说明他们不希望您输出纯文本的内容,但我无法找到解决问题的方法。我的猜测是,他们试图阻止你尝试将其用作Web应用程序的完整托管平台。 –
这个答案允许你基本上发回任何东西:http://stackoverflow.com/a/33614870/2300810 – zhywu