Status

Status प्रकार एक तार्किक त्रुटि मॉडल को परिभाषित करता है जो REST API और RPC API सहित विभिन्न प्रोग्रामिंग वातावरणों के लिए उपयुक्त है। इसका उपयोग GRPC द्वारा किया जाता है। त्रुटि मॉडल इस प्रकार डिज़ाइन किया गया है:

  • अधिकांश उपयोगकर्ताओं के लिए उपयोग करना और समझना आसान है
  • अप्रत्याशित जरूरतों को पूरा करने के लिए पर्याप्त लचीला

अवलोकन

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

भाषा मानचित्रण

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

अन्य उपयोग

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

इस त्रुटि मॉडल के उदाहरण उपयोग में शामिल हैं:

  • आंशिक त्रुटियाँ. यदि किसी सेवा को क्लाइंट को आंशिक त्रुटियाँ लौटाने की आवश्यकता है, तो वह आंशिक त्रुटियों को इंगित करने के लिए सामान्य प्रतिक्रिया में Status एम्बेड कर सकती है।

  • वर्कफ़्लो त्रुटियाँ. एक सामान्य वर्कफ़्लो में कई चरण होते हैं। प्रत्येक चरण में त्रुटि रिपोर्टिंग के लिए एक Status संदेश हो सकता है।

  • बैच संचालन. यदि कोई क्लाइंट बैच अनुरोध और बैच प्रतिक्रिया का उपयोग करता है, तो Status संदेश का उपयोग सीधे बैच प्रतिक्रिया के अंदर किया जाना चाहिए, प्रत्येक त्रुटि उप-प्रतिक्रिया के लिए एक।

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

  • लॉगिंग. यदि कुछ एपीआई त्रुटियां लॉग में संग्रहीत हैं, तो सुरक्षा/गोपनीयता कारणों से आवश्यक किसी भी स्ट्रिपिंग के बाद संदेश Status सीधे उपयोग किया जा सकता है।

JSON प्रतिनिधित्व
{
  "code": number,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
खेत
code

number

स्थिति कोड, जो google.rpc.Code का एक एनम मान होना चाहिए।

message

string

एक डेवलपर-सामना करने वाला त्रुटि संदेश, जो अंग्रेजी में होना चाहिए। किसी भी उपयोगकर्ता-सामना वाले त्रुटि संदेश को स्थानीयकृत किया जाना चाहिए और google.rpc.Status.details फ़ील्ड में भेजा जाना चाहिए, या क्लाइंट द्वारा स्थानीयकृत किया जाना चाहिए।

details[]

object

संदेशों की एक सूची जिसमें त्रुटि विवरण होता है। एपीआई के उपयोग के लिए संदेश प्रकारों का एक सामान्य सेट है।

एक वस्तु जिसमें मनमाना प्रकार के फ़ील्ड हों। एक अतिरिक्त फ़ील्ड "@type" में प्रकार की पहचान करने वाला एक URI होता है। उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }