Как изменить код состояния заголовков ответа в бессерверной фреймворке? - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу ответить на персональный код статуса и некоторые заголовки.Но я обнаружил, что даже когда я изменяю код состояния на 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

Как проверить, чтобы исправить код, можно изменить код состояния и заголовок ответа?Я также нахожу мои заголовки в теле ответа. Как добавить часть заголовка в заголовки ответа?

Если вы считаете, что у моей части интеграции есть проблема, можете ли вы дать мне правильный пример конфигурации?

1 Ответ

0 голосов
/ 20 сентября 2018

Похоже, у вас есть вложенный объект внутри заголовков.

Справочная документация,

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);
};

Надеюсь, это поможет.

...