আমি ল্যাম্বডা থেকে ত্রুটিটি যথাযথ 500 ত্রুটি হতে চেয়েছিলাম, অনেক গবেষণা করার পরে নীচে নিয়ে এসেছিল, যা কাজ করে:
এলএএমবিডিএ-তে
একটি ভাল প্রতিক্রিয়া জন্য, আমি নীচের মত ফিরে আসছি:
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);
}
একটি খারাপ প্রতিক্রিয়া জন্য, নীচের মত ফিরে
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)));
}
এপিআই গেটওয়েতে
একটি গেট মেথডের জন্য, / রেজি 1 / পরিষেবা 1 এর জিইটি বলুন:
Through Method Response > Add Response, added 3 responses:
- 200
- 300
- 400
তারপরে,
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')
এখন, প্রকাশ করুন / রেস 1 / পরিষেবা 1, প্রকাশিত ইউআরএল হিট করুন, যা উপরে লাম্বদার সাথে সংযুক্ত
ব্যবহৃত অ্যাডভান্সড আরইএসটি ক্লায়েন্ট (বা পোস্টম্যান) ক্রোম প্লাগইন, আপনি সার্ভার ত্রুটি (500) বা 400 এর মতো যথাযথ http কোডগুলি দেখতে পাবেন যেখানে "httpstatusCode" তে দেওয়া হয়েছিল এমন সমস্ত অনুরোধের জন্য 200 HTTP প্রতিক্রিয়া কোডের পরিবর্তে।
এপিআই এর 'ড্যাশবোর্ড' থেকে, এপিআই গেটওয়েতে, আমরা নীচের মতো HTTP স্থিতি কোডগুলি দেখতে পারি: