Google Drive Labels API का इस्तेमाल करके, किसी एक लेबल को अपडेट किया जा सकता है. इसके लिए, अपडेट के अनुरोधों का सेट लागू करना होगा. इससे, ड्राफ़्ट में नया बदलाव दिखेगा. उदाहरण के लिए, मौजूदा लेबल
Properties (लेबल की
बुनियादी जानकारी) को अपडेट किया जा सकता है. इसके अलावा, लेबल में नया
Field जोड़ा जा सकता है.
लेबल अपडेट, बैच अपडेट की तरह काम करता है, क्योंकि इस तरीके में अपडेट के
Request
ऑब्जेक्ट की सूची शामिल होती है. यह बैच के अनुरोध में बताए गए क्रम के मुताबिक अपडेट करता है. बैच अपडेट में किए गए अपडेट, ऐटॉमिक तरीके से लागू होते हैं. इसका मतलब है कि अगर बैच में मौजूद कोई अनुरोध पूरा नहीं होता है, तो पूरा अपडेट पूरा नहीं होगा. साथ ही, (संभावित तौर पर एक-दूसरे पर निर्भर) कोई भी बदलाव लागू नहीं होगा. लेबल में कोई बदलाव नहीं किया जाएगा.
अगर अपडेट पूरा हो जाता है, तो ड्राफ़्ट में किए गए बदलाव को पब्लिश करना होगा. इसके बाद ही, Google Drive के किसी आइटम के साथ इन बदलावों का इस्तेमाल किया जा सकेगा.
लेबल ऑब्जेक्ट अपडेट करना
लेबल में कई अन्य तरह के ऑब्जेक्ट शामिल होते हैं. इन्हें अपडेट किया जा सकता है. जैसे:
- लेबल
Properties Fieldऑब्जेक्ट और फ़ील्ड टाइप- सलेक्शन
Choiceऔर सलेक्शन चॉइसProperties
ये कुछ ऐसे ऑब्जेक्ट हैं जो लेबल के दिखने के तरीके और उसके काम करने के तरीके को कंट्रोल करते हैं.
ऑपरेशन की कैटगरी
labels संसाधन पर
delta तरीके से किए जा सकने वाले इन ऑपरेशन को, इन मुख्य कैटगरी में बांटा जा सकता है:
| कैटगरी | ब्यौरा |
|---|---|
| Create | ऑब्जेक्ट जोड़ना. |
| Update | किसी ऑब्जेक्ट की कुछ प्रॉपर्टी अपडेट करना. |
| Enable | ऑब्जेक्ट चालू करना. |
| Disable | ऑब्जेक्ट बंद करना. |
| Delete | ऑब्जेक्ट हटाना. |
इन कैटगरी का इस्तेमाल, अगले सेक्शन में खास ऑपरेशन के काम करने के तरीके के बारे में बताने के लिए किया गया है.
अनुरोध अपडेट करना
The delta तरीका, एक या उससे ज़्यादा
Request
ऑब्जेक्ट लेकर काम करता है. इनमें से हर ऑब्जेक्ट, किए जाने वाले अनुरोध के टाइप की जानकारी देता है. अनुरोध कई तरह के होते हैं. यहां, अनुरोधों के टाइप को अलग-अलग कैटगरी में बांटा गया है.
| Request ऑब्जेक्ट | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| लेबल की प्रॉपर्टी |
|
||||||||||
| फ़ील्ड |
|
||||||||||
| सलेक्शन चॉइस |
|
||||||||||
फ़ील्ड मास्क
"अपडेट करें" और "बंद करें" टाइप के कई अनुरोधों के लिए,
FieldMask की ज़रूरत होती है.
यह उन फ़ील्ड की कॉमा से अलग की गई सूची होती है जिन्हें आपको अपडेट करना है. साथ ही, इसमें यह भी बताया जाता है कि किन फ़ील्ड में कोई बदलाव नहीं करना है. मास्क की ज़रूरत इसलिए होती है, ताकि सिर्फ़ वे फ़ील्ड अपडेट हों जिन्हें आपको एडिट करना है. आपको कम से कम एक फ़ील्ड की जानकारी देनी होगी.
उदाहरण
किसी लेबल को अपडेट करने के लिए, delta तरीके का इस्तेमाल
labels संसाधन पर करें.
आपको यह भी बताना होगा:
उपयोगकर्ता के एडमिन क्रेडेंशियल का इस्तेमाल करने के लिए,
useAdminAccessक्वेरी पैरामीटर कोtrueपर सेट करना होगा. ऐक्सेस की अनुमति देने से पहले, सर्वर यह पुष्टि करता है कि उपयोगकर्ता के पास ज़रूरी क्लासिफ़िकेशन लेबल मैनेज करने के लिए ज़रूरी एडमिन विशेषाधिकार हैं या नहीं.एक
Requestजिसमें लेबल पर लागू किए जाने वाले अपडेट की जानकारी दी गई हो.Propertiesऑब्जेक्ट के ज़रिए, लेबल काtitle.एक या उससे ज़्यादा
Fieldऑब्जेक्ट.एक
labelsसंसाधन, जो लेबल को दिखाता है. इसमें एकnameऔर एकidहोता है, जो लेबल के लिए ग्लोबल तौर पर यूनीक आइडेंटिफ़ायर होता है.लेबल के जवाबों पर लागू होने वाला संसाधन व्यू सेट करने के लिए,
LabelViewऑब्जेक्ट कोLABEL_VIEW_FULLके तौर पर सेट करना होगा.LABEL_VIEW_FULLसे, सभी संभावित फ़ील्ड की वैल्यू मिलती है.
कोड का यह नमूना दिखाता है कि सही लेबल को अपडेट करने के लिए, उसके id का इस्तेमाल कैसे किया जाता है:
Python
body = {
'useAdminAccess': True,
'requests': [
{
'updateLabel': {
'properties': {
'title': 'TITLE'
},
'updateMask': 'title'
}
},
{
'createField': {
'field': {
'properties': {
'displayName': 'DISPLAY_NAME'
},
'textOptions': {}
}
}
}
],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
body=body,
name='labels/ID'
).execute()
Node.js
var body = {
'useAdminAccess': true,
'requests': [
{
'updateLabel': {
'properties': {
'title': 'TITLE'
},
'updateMask': 'title'
}
},
{
'createField': {
'field': {
'properties': {
'displayName': 'DISPLAY_NAME'
},
'textOptions': {}
}
}
}
],
'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
name: 'labels/ID',
requestBody: body
}, (err, res) => {
if (err) return console.error('The API returned an error: ' + err);
console.log(res);
});
इनकी जगह ये डालें:
- TITLE: लेबल का टाइटल.
- DISPLAY_NAME: फ़ील्ड का डिसप्ले नाम.
- ID: लेबल का आईडी.
लेबल, फ़ील्ड या चॉइस अपडेट हो जाती है. साथ ही, लेबल का रिविज़न आईडी बढ़ जाता है. इसके अलावा, लेबल को ड्राफ़्ट लेबल के तौर पर डेटाबेस में सेव कर लिया जाता है. लेबल की
State को PUBLISHED
पर सेट किया जाता है. साथ ही,
hasUnpublishedChanges
को trueपर सेट किया जाता है. इसका मतलब है कि ड्राफ़्ट में बदलाव किए गए हैं, लेकिन ये
उपयोगकर्ताओं के लिए उपलब्ध नहीं हैं. अपडेट किए गए लेबल को PUBLISHED पर सेट करना होगा. इसके बाद ही, उपयोगकर्ताओं को बदलाव दिखेंगे. ज़्यादा जानकारी के लिए, लेबल
का लाइफ़साइकल देखें.