2

ハンドラーから API ゲートウェイの応答ヘッダーに値を返したい。

Handler.js

module.exports.handler = function(event, context, cb) {
  const UpdateDate = new Date();  
  return cb(null, {
    body: {
      message: 'test'
    },
    header: {
      Last-Modified: UpdateDate
    }
  });
};

「エンドポイント」の s-function.json

"responses": {
    "400": {
      "statusCode": "400"
    },
    "default": {
      "statusCode": "200",
      "responseParameters": {
        "method.response.header.Cache-Control": "'public, max-age=86400'",
        "method.response.header.Last-Modified": "integration.response.body.header.Last-Modified"
      },
      "responseModels": {
        "application/json;charset=UTF-8": "Empty"
      },
      "responseTemplates": {
        "application/json;charset=UTF-8": "$input.json('$.body')"
      }
    }
  }

これは機能します。しかし、「integration.response.header.Last-Modified」の使い方を知りたいです。ハンドラーのコールバック形式が間違っていますか?

編集:「エンドポイント」の s-function.json

"integration.response.header.Last-Modified" これは機能しません。「integration.response.header.Last-Modified」にデータを渡すための特定のハンドラの戻り形式を知りたいです。

"responses": {
    "400": {
      "statusCode": "400"
    },
    "default": {
      "statusCode": "200",
      "responseParameters": {
        "method.response.header.Cache-Control": "'public, max-age=86400'",
        "method.response.header.Last-Modified": "integration.response.header.Last-Modified"
      },
      "responseModels": {
        "application/json;charset=UTF-8": "Empty"
      },
      "responseTemplates": {
        "application/json;charset=UTF-8": "$input.json('$.body')"
      }
    }
  }
4

1 に答える 1

0

ラムダ関数からの出力はすべて応答本文で返されるため、応答本文の一部を API 応答ヘッダーにマップする必要があります。

module.exports.handler = function(event, context, cb) {
  const UpdateDate = new Date();  
  return cb(null, {
      message: 'test',
      Last-Modified: UpdateDate
  });
};

ペイロード "{"message" : "test", "Last-Modified" : "..."}" を生成します

この場合、マッピング式として「integration.response.body.Last-Modified」を使用します。補足として、応答本文で「本文」と「ヘッダー」という名前を付けると、マッピング式が読みにくくなる可能性があります。

ありがとう、ライアン

于 2016-07-18T21:00:49.040 に答える