从Amazon API网关端点输出纯文本内容

时间:2015-07-11 21:51:06

标签: amazon-web-services

使用亚马逊的API网关我可以创建一个端点来调用输出纯文本的lambda函数。但是,当我在端点上发出请求时,输出将返回默认内容类型" application / json"。这将输出包含在引号中的纯文本响应。我想将响应标题更改为" text / plain"所以它只输出用引号打开的文本。有谁知道怎么做?

2 个答案:

答案 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)获得更多提示。