Я хочу получить ответ 304 с последним измененным заголовком.Api gateway 304 ответов с последним измененным заголовком
Сначала я использую ответ об ошибке для реализации.
Handler.js
module.exports.handler = function(event, context, cb) {
const UpdateDate = new Date();
return cb("304 Not Modified", {
"Last-Modified": UpdateDate,
"body":{
"message": {}
}
});
};
s-function.json в конечных точках
"responses": {
"304 Not Modified.*": {
"statusCode": "304",
"responseParameters": {
"method.response.header.Last-Modified": "integration.response.body.Last-Modified"
},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": "$input.json('$.body')"
}
},
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "integration.response.body.Last-Modified"
},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": "$input.json('$.body')"
}
}
}
Однако я нахожу его на лямбда-документ.
При возникновении ошибки параметр обратного вызова игнорируется.
Таким образом, это не работает.
Есть ли какое-либо решение ответа 304 с заголовком?
Обновлено:
Можно ли вернуть объект ошибки и карты ответов 304 в с-функции? Ниже код не может сопоставить 304.
S-funtion.json
"responses": {
".*304 Not Modified.*": {
"statusCode": "304",
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "integration.response.body.errorMessage.Last-Modified"
}
}
Handler.js
return cb({
"status" : "304 Not Modified",
"Last-Modified": UpdateDate
), null);
Я также попробовать это. Это может отображение до 304, но заголовок не может получить «integration.response.body.errorMessage.Last-Modified»
return cb(JSON.stringify({
"status" : "304 Not Modified",
"Last-Modified": UpdateDate
}), null);
Стараюсь $ util.parseJson, но не работает на responseParameter.
выражение Invalid отображение указано:. $ Util.parseJson ($ input.path ('$ ErrorMessage')) Last-Modified
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "$util.parseJson($input.path('$.errorMessage')).Last-Modified"
},
Пожалуйста, посмотрите на ссылку Райана в варианте 2. Ваше обновление фактически не возвращает ошибку. –
@BobKinney Возврат ошибки. В журналах CloudWatch: { "errorMessage": "{\" status \ ": \" 304 Not Modified \ ", \" Last-Modified \ ": \" 2016-07-22T01: 58: 10.857Z \ "} " } – Jim
Сторона примечания, 304 не должны возвращать тела реакции в соответствии с W3. Просто обратимся к вашему 1-му примеру. – arjabbar