使用亚马逊的API网关我可以创建一个端点来调用输出纯文本的lambda函数。但是,当我在端点上发出请求时,输出将返回默认内容类型" application / json"。这将输出包含在引号中的纯文本响应。我想将响应标题更改为" text / plain"所以它只输出用引号打开的文本。有谁知道怎么做?
答案 0 :(得分:29)
所以我设法让这个工作。
在集成响应中,您需要添加一个类型为" text / plain"
的新映射模板在框中输入模板类型:
suffix
或者要返回的值的路径并保存新的映射模板(不要选择模型!)
然后,您需要重新部署API才能使更改生效。
我已经实现的一件事是,方法响应也设置为" text / plain"使用Empty模型。我不确定这是否有影响,但如果上述情况不起作用,只需添加即可。
答案 1 :(得分:1)
安东尼的方式仍然在输出字符串上留下引号。因此,回顾一下,在集成响应上,为类型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)
获得更多提示。