Tôi muốn một lỗi từ Lambda là lỗi 500 thích hợp, sau khi thực hiện rất nhiều nghiên cứu, đã đưa ra kết quả bên dưới, nó hoạt động:
Trên LAMBDA
Để có phản hồi tốt, tôi sẽ quay lại như sau:
exports.handler = (event, context, callback) => {
// ..
var someData1 = {
data: {
httpStatusCode: 200,
details: [
{
prodId: "123",
prodName: "Product 1"
},
{
"more": "213",
"moreDetails": "Product 2"
}
]
}
};
return callback(null, someData1);
}
Đối với phản hồi không tốt, hãy trả lại như bên dưới
exports.handler = (event, context, callback) => {
// ..
var someError1 = {
error: {
httpStatusCode: 500,
details: [
{
code: "ProductNotFound",
message: "Product not found in Cart",
description: "Product should be present after checkout, but not found in Cart",
source: "/data/attributes/product"
},
{
code: "PasswordConfirmPasswordDoesntMatch",
message: "Password and password confirmation do not match.",
description: "Password and password confirmation must match for registration to succeed.",
source: "/data/attributes/password",
}
]
}
};
return callback(new Error(JSON.stringify(someError1)));
}
Trên API Gateway
Đối với phương pháp GET, hãy nói GET / res1 / service1:
Through Method Response > Add Response, added 3 responses:
- 200
- 300
- 400
Sau đó,
Through 'Integration Response' > 'Add integration response', create a Regex for 400 errors (client error):
Lambda Error Regex .*"httpStatusCode":.*4.*
'Body Mapping Templates' > Add mapping template as:
Content-Type application/json
Template text box* $input.path('$.errorMessage')
Similarly, create a Regex for 500 errors (server error):
Lambda Error Regex .*"httpStatusCode":.*5.*
'Body Mapping Templates' > Add mapping template as:
Content-Type application/json
Template text box* $input.path('$.errorMessage')
Bây giờ, xuất bản / res1 / dịch vụ1, nhấn vào URL đã xuất bản, được kết nối với lambda ở trên
Đã sử dụng plugin chrome client Advanced REST (hoặc Postman), bạn sẽ thấy mã http thích hợp như lỗi máy chủ (500) hoặc 400, thay vì 200 mã phản hồi http cho tất cả các yêu cầu được đưa ra trong "httpStatusCode".
Từ 'Trang tổng quan' của API, trong API Gateway, chúng ta có thể thấy các mã trạng thái http như bên dưới: