Operation

यह संसाधन लंबे समय तक चलने वाले ऑपरेशन को दिखाता है, जो कि नेटवर्क एपीआई कॉल का नतीजा है.

जेएसओएन के काेड में दिखाना
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
फ़ील्ड
name

string

सर्वर से असाइन किया गया नाम, जो सिर्फ़ उसी सेवा में यूनीक होता है जो इसे मूल रूप से रिटर्न करता है. अगर आप डिफ़ॉल्ट एचटीटीपी मैपिंग का इस्तेमाल करते हैं, तो name एक ऐसा संसाधन नाम होना चाहिए जिसके आखिर में operations/{unique_id} हो.

metadata

object

कार्रवाई से जुड़ा, सेवा के हिसाब से मेटाडेटा. आम तौर पर, इसमें प्रगति की जानकारी और सामान्य मेटाडेटा होता है, जैसे कि बनाने का समय. हो सकता है कि कुछ सेवाएं ऐसा मेटाडेटा न दें. लंबे समय तक चलने वाली कार्रवाई के लिए इस्तेमाल होने वाले किसी भी तरीके में, मेटाडेटा का टाइप (अगर कोई है) दर्ज होना चाहिए.

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

done

boolean

अगर वैल्यू false है, तो इसका मतलब है कि कार्रवाई अब भी जारी है. अगर true पूरा हो गया है, तो कार्रवाई पूरी हो जाती है और error या response उपलब्ध होती है.

यूनियन फ़ील्ड result. ऑपरेशन का नतीजा, error या कोई मान्य response हो सकता है. अगर done == false है, तो error या response को सेट नहीं किया जाता. अगर done == true है, तो error या response में से कोई एक सेट किया जा सकता है. हो सकता है कि कुछ सेवाओं के नतीजे न मिलें. result इनमें से सिर्फ़ एक हो सकता है:
error

object (Status)

कार्रवाई नहीं होने या रद्द होने पर, गड़बड़ी का नतीजा.

response

object

सफलता की स्थिति में ऑपरेशन की सामान्य प्रतिक्रिया. अगर मूल तरीके से कोई डेटा नहीं दिखता है, जैसे कि Delete, तो जवाब google.protobuf.Empty होगा. अगर ओरिजनल तरीका Get/Create/Update है, तो जवाब रिसॉर्स होना चाहिए. दूसरे तरीकों के लिए, रिस्पॉन्स टाइप XxxResponse होना चाहिए, जहां Xxx मूल तरीके का नाम है. उदाहरण के लिए, अगर मूल तरीके का नाम TakeSnapshot() है, तो रिस्पॉन्स का अनुमानित टाइप TakeSnapshotResponse होगा.

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

स्थिति

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

आप एपीआई डिज़ाइन गाइड में इस गड़बड़ी मॉडल के बारे में ज़्यादा जानकारी पा सकते हैं. साथ ही, इसके साथ काम करने का तरीका भी जान सकते हैं.

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

integer

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

message

string

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

details[]

object

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

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