Status

Status टाइप, लॉजिकल एरर मॉडल के बारे में बताता है, जो अलग-अलग प्रोग्रामिंग एनवायरमेंट के लिए सही होता है. इनमें REST API और RPC एपीआई शामिल हैं. इसका इस्तेमाल gRPC करता है. गड़बड़ी वाले मॉडल को इस तरह डिज़ाइन किया गया है कि:

  • ज़्यादातर उपयोगकर्ताओं के लिए इस्तेमाल करने और समझने में आसान
  • अनचाही ज़रूरतों को पूरा करने के लिए ज़रूरत के हिसाब से इस्तेमाल किए जा सकने वाले डिवाइस

खास जानकारी

Status मैसेज में डेटा के तीन हिस्से होते हैं: गड़बड़ी का कोड, गड़बड़ी का मैसेज, और गड़बड़ी की जानकारी. गड़बड़ी का कोड, google.rpc.Code की enum वैल्यू होनी चाहिए. हालांकि, ज़रूरत पड़ने पर यह गड़बड़ी के दूसरे कोड भी स्वीकार कर सकता है. गड़बड़ी का मैसेज, डेवलपर को भेजा जाने वाला अंग्रेज़ी मैसेज होना चाहिए. इससे डेवलपर को गड़बड़ी समझने और उसका समाधान करने में मदद मिलती है. अगर उपयोगकर्ता को गड़बड़ी का स्थानीय मैसेज देना है, तो गड़बड़ी की जानकारी वाले मैसेज में स्थानीय भाषा के हिसाब से गड़बड़ी का मैसेज डालें या उसे क्लाइंट की स्थानीय भाषा में लिखें. गड़बड़ी की वैकल्पिक जानकारी में, गड़बड़ी के बारे में आर्बिट्रेरी जानकारी दी जा सकती है. google.rpc पैकेज में, गड़बड़ी की जानकारी देने वाले टाइप का एक पहले से तय सेट होता है. इसका इस्तेमाल, गड़बड़ी की सामान्य स्थितियों के लिए किया जा सकता है.

भाषा को मैप करना

Status मैसेज, गड़बड़ी के मॉडल को लॉजिकल रूप से दिखाता है, लेकिन यह ज़रूरी नहीं है कि यह असल वायर फ़ॉर्मैट हो. जब Status मैसेज अलग-अलग क्लाइंट लाइब्रेरी और अलग-अलग वायर प्रोटोकॉल में दिखता है, तो इसे अलग-अलग तरीके से मैप किया जा सकता है. उदाहरण के लिए, इसे Java में कुछ अपवादों के साथ मैप किया जाएगा, लेकिन इस बात की संभावना ज़्यादा है कि इसे C में कुछ गड़बड़ी कोड से मैप किया जाए.

अन्य इस्तेमाल

गड़बड़ी का मॉडल और Status मैसेज, अलग-अलग एनवायरमेंट में इस्तेमाल किए जा सकते हैं. ऐसा, एपीआई के साथ या उसके बिना भी किया जा सकता है, ताकि हर प्लैटफ़ॉर्म पर डेवलपर को एक जैसा अनुभव दिया जा सके.

गड़बड़ी के इस मॉडल को इस्तेमाल करने के उदाहरण:

  • कुछ गड़बड़ियां. अगर किसी सेवा के लिए क्लाइंट को कुछ गड़बड़ियां दिखानी हैं, तो वह Status को सामान्य रिस्पॉन्स में एम्बेड कर सकती है, ताकि कुछ गड़बड़ियां दिखाई जा सकें.

  • वर्कफ़्लो की गड़बड़ियां. एक सामान्य वर्कफ़्लो में कई चरण होते हैं. गड़बड़ी की रिपोर्ट करने के लिए, हर चरण में Status मैसेज हो सकता है.

  • बैच कार्रवाइयां. अगर कोई क्लाइंट, बैच रिक्वेस्ट और बैच रिस्पॉन्स का इस्तेमाल करता है, तो Status मैसेज का इस्तेमाल सीधे बैच रिस्पॉन्स में किया जाना चाहिए. इसका मतलब है कि हर गड़बड़ी वाले सब-रिस्पा के लिए एक-एक मैसेज देना चाहिए.

  • एसिंक्रोनस कार्रवाइयां. अगर किसी एपीआई कॉल के रिस्पॉन्स में एसिंक्रोनस ऑपरेशन नतीजों को एम्बेड किया जाता है, तो उन कार्रवाइयों की स्थिति को सीधे Status मैसेज का इस्तेमाल करके दिखाया जाना चाहिए.

  • लॉग इन हो रहा है. अगर लॉग में एपीआई से जुड़ी कुछ गड़बड़ियां सेव होती हैं, तो सुरक्षा/निजता की वजह से किसी भी तरह का बदलाव करने के बाद, Status मैसेज का इस्तेमाल किया जा सकता है.

JSON के काेड में दिखाना
{
  "code": number,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
फ़ील्ड
code

number

स्टेटस कोड, जो google.rpc.Code की enum वैल्यू होनी चाहिए.

message

string

डेवलपर को भेजा जाने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में होना चाहिए. उपयोगकर्ता को दिखने वाली गड़बड़ी के किसी भी मैसेज को स्थानीय भाषा में लिखा जाना चाहिए और google.rpc.Status.details फ़ील्ड में भेजा जाना चाहिए या क्लाइंट की ओर से स्थानीय भाषा में भेजा जाना चाहिए.

details[]

object

उन मैसेज की सूची जिनमें गड़बड़ी की जानकारी होती है. एपीआई के इस्तेमाल के लिए, मैसेज के टाइप का एक सामान्य सेट मौजूद है.

ऐसा ऑब्जेक्ट जिसमें आर्बिट्रेरी टाइप के फ़ील्ड शामिल होते हैं. अतिरिक्त फ़ील्ड "@type" में, टाइप की पहचान करने वाला यूआरआई होता है. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.