पाठ 18 / 24
मानक एरर रिस्पॉन्स
हर एरर को एक जैसा पूर्वानुमानित आकार और उपयोगी कोड देना।
हर विफलता के लिए एक आकार
जो भी गलत हो — वैलिडेशन, ऑथ, सर्वर क्रैश — एरर बॉडी की संरचना एक जैसी होनी चाहिए, ताकि क्लाइंट हर एंडपॉइंट के लिए अलग के बजाय एक एरर-हैंडलिंग पाथ लिख सके।
पुन: उपयोग योग्य लिफ़ाफ़ा
एक मशीन-पठनीय 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" }
]
}
}मशीन के लिए कोड, इंसान के लिए संदेश
क्लाइंट को error.code (एक स्थिर स्ट्रिंग) पर शाखा लेनी चाहिए, error.message पार्स करके कभी नहीं — मैसेज टेक्स्ट बिना चेतावनी के शब्द बदल सकता है, इससे जुड़ा कोई भी लॉजिक टूट जाएगा।
आंतरिक जानकारी लीक न करें
क्लाइंट-सामना करने वाले एरर में कभी स्टैक ट्रेस, SQL क्वेरी या फ़ाइल पाथ न डालें — इन्हें सर्वर-साइड पर requestId के साथ लॉग करें, और सपोर्ट के ट्रेस करने के लिए क्लाइंट को केवल वह id लौटाएँ।