पाठ 19 / 25
मानक एरर रिस्पॉन्स
एक consistent error format लौटाएँ जिसमें स्थिर machine-readable codes हों, और clients को stack traces कभी न दिखाएँ।
हर विफलता के लिए एक आकार
जो भी गलत हो — वैलिडेशन, ऑथ, सर्वर क्रैश — एरर बॉडी की संरचना एक जैसी होनी चाहिए, ताकि क्लाइंट हर एंडपॉइंट के लिए अलग के बजाय एक एरर-हैंडलिंग पाथ लिख सके।
पुन: उपयोग योग्य लिफ़ाफ़ा
एक मशीन-पठनीय code, एक इंसानी message, और फ़ील्ड-स्तरीय समस्याओं के लिए वैकल्पिक details।
HTTP/1.1 422 Unprocessable Entity
{
"error": {
"code": "VALIDATION_FAILED",
"message": "Request has invalid fields.",
"details": [
{ "field": "email", "issue": "must be a valid email address" }
]
}
}मशीन के लिए कोड, इंसान के लिए संदेश
Clients को error.code (स्थिर string) पर branch करना चाहिए, error.message parse करके कभी नहीं; message text बिना चेतावनी बदल सकता है। मानक Problem Details format (RFC 9457, application/problem+json) पर विचार करें।
आंतरिक जानकारी लीक न करें
क्लाइंट-सामना करने वाले एरर में कभी स्टैक ट्रेस, SQL क्वेरी या फ़ाइल पाथ न डालें — इन्हें सर्वर-साइड पर requestId के साथ लॉग करें, और सपोर्ट के ट्रेस करने के लिए क्लाइंट को केवल वह id लौटाएँ।