我想响应个人定义的状态码和一些标头。 但我发现即使我将状态代码更改为 201,状态代码仍然是 200。并且我定义的标头不在标头中。
我的处理程序喜欢:
function createResponse(status, header, body) {
return {
headers: Object.assign(header, {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=utf-8'
}),
statusCode: status,
body: JSON.stringify(body)
}
}
export const hello = async (event, context, cb) => {
const rep = {
message: 'v1.0',
event: event
};
cb(null, createResponse(201, {}, rep));
return;
};
我使用无服务器.yml,我的配置是:
functions:
first:
handler: handlers/first.hello
events:
- http:
method: ANY
path: first
integration: lambda
如何检查正确的代码可以更改状态代码和响应标头? 我还发现我的标题仍在响应正文中,如何在响应标头中添加我的标头部分?
如果您认为我的集成部分有问题,您能给我正确的配置示例吗?
看起来标题中有一个嵌套对象。
参考文档,
https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
这是发送正确响应的正确示例代码,
exports.handler = function(event, context, callback) {
console.log('Received event:', JSON.stringify(event, null, 2));
var res ={
"statusCode": 200,
"headers": {
"Content-Type": "*/*"
}
};
res.body = "Hello, World !";
callback(null, res);
};
希望对您有所帮助。