इस दस्तावेज़ में, Google Drive में fields पैरामीटर का इस्तेमाल करने का तरीका बताया गया है.
आपको जिन फ़ील्ड की ज़रूरत है उन्हें पाने और परफ़ॉर्मेंस को बेहतर बनाने के लिए, अपने तरीके के कॉल में
fields system
parameter का इस्तेमाल करें.
Drive API पर लागू होने वाले अन्य सिस्टम पैरामीटर के बारे में जानने के लिए, देखें वैकल्पिक सिस्टम पैरामीटर.
फ़ील्ड पैरामीटर कैसे काम करता है
fields पैरामीटर, जवाब को फ़िल्टर करने के लिए
FieldMask
का इस्तेमाल करता है. फ़ील्ड मास्क का इस्तेमाल, फ़ील्ड के ऐसे सबसेट को तय करने के लिए किया जाता है जिसे किसी अनुरोध को दिखाना चाहिए. फ़ील्ड मास्क का इस्तेमाल करना, डिज़ाइन से जुड़ी एक अच्छी प्रैक्टिस है. इससे यह पक्का किया जा सकता है कि आपने ज़रूरत से ज़्यादा डेटा का अनुरोध न किया हो. इससे, प्रोसेसिंग में लगने वाले अनावश्यक समय से बचा जा सकता है.
अगर आपने fields पैरामीटर तय नहीं किया है, तो सर्वर, तरीके के हिसाब से फ़ील्ड का डिफ़ॉल्ट सेट दिखाता है. उदाहरण के लिए,
list तरीका, files संसाधन पर सिर्फ़ kind, id, name, और
mimeType फ़ील्ड दिखाता है. get तरीका,
permissions संसाधन पर, डिफ़ॉल्ट फ़ील्ड का एक अलग सेट दिखाता है.
about, approvals, comments
(सिर्फ़ delete को छोड़कर), और replies (सिर्फ़
delete को छोड़कर) संसाधनों के सभी तरीकों के लिए, आपको fields पैरामीटर सेट करना होगा. ये तरीके, फ़ील्ड का डिफ़ॉल्ट सेट नहीं दिखाते.
जब सर्वर, fields पैरामीटर वाले किसी मान्य अनुरोध को प्रोसेस कर लेता है, तब वह अनुरोध किए गए डेटा के साथ HTTP 200 OK स्टेटस कोड दिखाता है. अगर फ़ील्ड पैरामीटर में कोई गड़बड़ी है या वह अमान्य है, तो सर्वर, HTTP 400 Bad Request स्टेटस कोड दिखाता है. साथ ही, गड़बड़ी का एक मैसेज भी दिखाता है. इससे उपयोगकर्ता को पता चलता है कि फ़ील्ड चुनने में क्या गड़बड़ी हुई है. उदाहरण के लिए,
files.list(fields='files(id,capabilities,canAddChildren)') से
"Invalid field selection canAddChildren." गड़बड़ी होती है. इस उदाहरण के लिए, सही फ़ील्ड पैरामीटर files.list(fields='files(id,capabilities/canAddChildren)') है.
fields पैरामीटर का इस्तेमाल करके, किन फ़ील्ड को दिखाया जा सकता है, यह जानने के लिए, क्वेरी किए जा रहे संसाधन के दस्तावेज़ वाले पेज पर जाएं. उदाहरण के लिए, किसी फ़ाइल के लिए किन फ़ील्ड को दिखाया जा सकता है, यह जानने के लिए, files संसाधन का दस्तावेज़ देखें.
फ़ाइल के हिसाब से क्वेरी की शर्तों के बारे में ज़्यादा जानने के लिए, खोज क्वेरी की शर्तें और ऑपरेटर देखें.
फ़ील्ड पैरामीटर के फ़ॉर्मैट से जुड़े नियम
फ़ील्ड के अनुरोध पैरामीटर वैल्यू का फ़ॉर्मैट, XPath सिंटैक्स पर आधारित होता है. fields पैरामीटर के लिए, फ़ॉर्मैटिंग से जुड़े ये नियम लागू होते हैं. इन सभी नियमों में, files.get तरीके से जुड़े उदाहरणों का इस्तेमाल किया गया है.
एक से ज़्यादा फ़ील्ड चुनने के लिए, कॉमा लगाकर अलग की गई लिस्ट का इस्तेमाल करें. जैसे,
'name, mimeType'.फ़ील्ड
bको चुनने के लिए,a/bका इस्तेमाल करें. यह फ़ील्डaमें नेस्ट किया गया है. जैसे,'capabilities/canDownload'. ज़्यादा जानकारी के लिए, नेस्ट किए गए संसाधन के फ़ील्ड फ़ेच करना देखें.कलेक्शन या ऑब्जेक्ट के सब-फ़ील्ड के किसी खास सेट का अनुरोध करने के लिए, सब-चुनने वाले का इस्तेमाल करें. इसके लिए, एक्सप्रेशन को ब्रैकेट "()" में रखें. उदाहरण के लिए,
'permissions(id)'से, अनुमतियों के कलेक्शन में मौजूद हर एलिमेंट के लिए सिर्फ़ अनुमति आईडी मिलती है.किसी ऑब्जेक्ट में मौजूद सभी फ़ील्ड दिखाने के लिए, फ़ील्ड के विकल्पों में वाइल्डकार्ड के तौर पर तारे के चिह्न (
*) का इस्तेमाल करें. उदाहरण के लिए,'permissions/permissionDetails/*'से, हर अनुमति के लिए उपलब्ध अनुमति की सभी जानकारी वाले फ़ील्ड चुने जाते हैं. ध्यान दें कि वाइल्डकार्ड का इस्तेमाल करने से, अनुरोध की परफ़ॉर्मेंस पर बुरा असर पड़ सकता है.मैप के अलग-अलग एलिमेंट को तब नहीं चुना जा सकता, जब उनकी कुंजियों में खास वर्ण (जैसे, फ़ॉरवर्ड स्लैश
/या पीरियड.) शामिल हों. उदाहरण के लिए, में किसी खास एक्सपोर्ट फ़ॉर्मैट की कुंजी कोexportLinksका इस्तेमाल करके चुनने की कोशिश करने पर,fields=exportLinks/application/pdfगड़बड़ी होती है. ऐसा इसलिए होता है, क्योंकि पाथ पार्सर,/को नेस्ट की गई प्रॉपर्टी के डीलिमिटर के तौर पर इंटरप्रेट करता है.HTTP 400 Bad Requestकुंजियों में खास वर्ण वाले कुंजी-वैल्यू पेयर पाने के लिए, पूरे मैप का अनुरोध करें. जैसे,fields=exportLinks. इसके बाद, क्लाइंट-साइड पर नतीजों को फ़िल्टर करें.
अनुरोध
इस उदाहरण में, हमने अनुरोध में फ़ाइल आईडी पाथ पैरामीटर और कई फ़ील्ड को क्वेरी पैरामीटर के तौर पर दिया है. जवाब में, फ़ाइल आईडी के लिए फ़ील्ड की वैल्यू दिखती हैं.
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared
जवाब
{
"name": "File1",
"starred": false,
"shared": true
}
}नेस्ट किए गए संसाधन के फ़ील्ड फ़ेच करना
जब कोई फ़ील्ड किसी दूसरे संसाधन को रेफ़र करता है, तो यह तय किया जा सकता है कि नेस्ट किए गए संसाधन के किन फ़ील्ड को फ़ेच किया जाना चाहिए.
उदाहरण के लिए, permissions संसाधन के role फ़ील्ड (नेस्ट किया गया संसाधन) को पाने के लिए, इनमें से कोई भी विकल्प इस्तेमाल करें:
permissions.getके साथfields=role.permissions.getके साथfields=*का इस्तेमाल करके,permissionsके सभी फ़ील्ड दिखाएं.files.getके साथfields=permissions(role)याfields=permissions/role.files.getके साथfields=permissionsका इस्तेमाल करके,permissionsके सभी फ़ील्ड दिखाएं.changes.listके साथfields=changes(file(permissions(role))).
एक से ज़्यादा फ़ील्ड पाने के लिए, कॉमा लगाकर अलग की गई लिस्ट का इस्तेमाल करें. उदाहरण के लिए, files.list के साथ fields=files(id,name,createdTime,modifiedTime,size).
नेस्ट किए गए कलेक्शन या ऑब्जेक्ट में नेस्ट किए गए फ़ील्ड तय करने के लिए, नेस्ट किए गए ब्रैकेट का इस्तेमाल करें. उदाहरण के लिए, आईडी, नाम, और नेस्ट किए गए मालिक की जानकारी (दिखाने के लिए नाम और ईमेल पता) के साथ फ़ाइलों की सूची बनाने के लिए. साथ ही, पेज पर बांटने के लिए अगले पेज का टोकन पाने के लिए: files.list के साथ fields=nextPageToken,files(id,name,owners(displayName,emailAddress)).
अनुरोध
इस उदाहरण में, हमने अनुरोध में फ़ाइल आईडी पाथ पैरामीटर और कई फ़ील्ड को क्वेरी पैरामीटर के तौर पर दिया है. इनमें, नेस्ट किए गए permissions संसाधन के कुछ फ़ील्ड भी शामिल हैं. जवाब में, फ़ाइल आईडी के लिए फ़ील्ड की वैल्यू दिखती हैं.
GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=name,starred,shared,permissions(kind,type,role)
जवाब
{ "name": "File1", "starred": false, "shared": true, "permissions": [ { "kind": "drive#permission", "type": "user", "role": "owner" } ] }
वैकल्पिक सिस्टम पैरामीटर
Google Drive API की सभी कार्रवाइयों पर लागू होने वाले क्वेरी पैरामीटर के बारे में जानकारी, सिस्टम पैरामीटर में दी गई है.