Data API के कोड स्निपेट

निर्देश

इंटरैक्टिव कोड स्निपेट टूल की मदद से, एपीआई अनुरोधों की आसानी से जांच की जा सकती है. साथ ही, उन अनुरोधों के लिए खास कोड के सैंपल जनरेट किए जा सकते हैं. किसी दिए गए तरीके के लिए, यह टूल एक या उससे ज़्यादा इस्तेमाल के उदाहरणों के लिए कोड स्निपेट दिखाता है. साथ ही, इस्तेमाल का हर उदाहरण उस तरीके को कॉल करने के सामान्य तरीके के बारे में बताता है. उदाहरण के लिए, किसी खास चैनल या मौजूदा उपयोगकर्ता के चैनल का डेटा हासिल करने के लिए, channels.list तरीके को कॉल किया जा सकता है.

एपीआई अनुरोध लागू करें

अनुरोध पैरामीटर की सूची के बगल में मौजूद, लागू करें बटन पर क्लिक करके, अनुरोधों पर कार्रवाई की जा सकती है. अगर आपने ऐप्लिकेशन को पहले अपनी ओर से एपीआई अनुरोध सबमिट करने की अनुमति नहीं दी है, तो आपको ऐसा करने के लिए कहा जाएगा. अगर आपका अनुरोध, आपके चैनल से जुड़े संसाधन डालने, अपडेट करने या मिटाने जैसे काम करता है, तो अतिरिक्त सावधानी के तौर पर आपसे यह पुष्टि करने के लिए कहा जाएगा कि आपको अनुरोध के लागू होने से पहले उस पर कार्रवाई करनी है.

कोड स्निपेट और पूरे सैंपल को टॉगल करें

इस्तेमाल के हर उदाहरण के लिए, टूल एक कोड स्निपेट दिखाता है, जो कॉल किए जा रहे किसी खास तरीके के लिए खास कोड की पहचान करता है. हर स्निपेट, कॉल किए जा रहे तरीके की पहचान करता है. साथ ही, एपीआई अनुरोध में इस्तेमाल की गई पैरामीटर और प्रॉपर्टी वैल्यू की भी पहचान करता है.

इसके अलावा, यह टूल एक पूरा कोड सैंपल भी दिखाता है, जो उस कोड स्निपेट को ऐसे टेंप्लेट में डालता है जो एपीआई अनुरोधों को अनुमति देने और एपीआई अनुरोधों को बनाने के लिए, बॉयलरप्लेट फ़ंक्शन के बारे में बताता है. स्निपेट और पूरे सैंपल के बीच स्विच करने के लिए, सैंपल के ऊपर मौजूद स्लाइडर का इस्तेमाल करें:

स्थानीय तौर पर पूरे कोड सैंपल चलाएं

पूरे कोड सैंपल, कॉपी करने और स्थानीय तौर पर चलाने के लिए डिज़ाइन किए गए हैं. कृपया इन ज़रूरी शर्तों पर ध्यान दें और पूरे कोड के सैंपल को चलाने के लिए, सेट अप करने का तरीका अपनाएं:

जावा

ज़रूरी शर्तें

  • Java 1.7 या उसके बाद का वर्शन
  • Gradle 2.3 या उसके बाद का वर्शन

अपना प्रोजेक्ट सेट अप करना और कोड सैंपल चलाना

  1. API Console में एक प्रोजेक्ट बनाएं और वेब ऐप्लिकेशन के लिए क्रेडेंशियल सेट अप करें. आधिकारिक रीडायरेक्ट यूआरआई को ज़रूरत के मुताबिक सेट करें.

  2. अपना प्रोजेक्ट तैयार करने के लिए एपीआई Java क्विकस्टार्ट गाइड में दिए गए निर्देशों का पालन करें, लेकिन डिफ़ॉल्ट build.gradle फ़ाइल के कॉन्टेंट को नीचे दिए गए कोड से बदलें:

    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'ApiExample'
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile 'com.google.api-client:google-api-client:1.22.0'
        compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0'
        compile 'com.google.apis:google-api-services-youtube:v3-rev182-1.22.0'
        compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2'
        compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.4.4'
    }
    
    compileJava {
        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
  3. अपने क्रेडेंशियल से जुड़ी client_secrets.json फ़ाइल को काम करने वाली डायरेक्ट्री से, src/main/resources/client_secret.json में सेव करें.

  4. अपनी वर्किंग डायरेक्ट्री से, कोड का पूरा सैंपल src/main/java/ApiExample.java में कॉपी करें. (हर सैंपल में क्लास का नाम ApiExample है, ताकि आपको अलग-अलग सैंपल चलाने के लिए build.gradle फ़ाइल में बदलाव करने की ज़रूरत न पड़े.)

  5. कमांड लाइन से सैंपल चलाएं:

    gradle -q run
  6. ज़्यादातर सैंपल, STDOUT पर कुछ प्रिंट करते हैं. डेटा लिखने वाले अनुरोधों का असर देखने के लिए, YouTube की वेबसाइट पर भी जाएं. जैसे, प्लेलिस्ट या चैनल के सेक्शन बनाने के अनुरोध.

JavaScript
  1. API Console में एक प्रोजेक्ट बनाएं और वेब ऐप्लिकेशन के लिए क्रेडेंशियल सेट अप करें. अनुरोध करने वाले यूआरएल की पहचान करने के लिए, अनुमति वाले JavaScript ऑरिजिन सेट करें (जैसे, http://localhost).

  2. पूरे कोड के नमूने को किसी ऐसी लोकल फ़ाइल में कॉपी करें जिसे आपके वेब सर्वर से ऐक्सेस किया जा सके (जैसे, /var/www/html/example.html).

  3. कोड सैंपल में वह लाइन ढूंढें जो अनुरोध के लिए इस्तेमाल किया जाने वाला Client-ID सेट करती है. इसके बाद, उस वैल्यू को अपने क्रेडेंशियल के क्लाइंट आईडी से बदलें:

    gapi.client.init({
        'clientId': 'REPLACE_ME',
  4. अपने ब्राउज़र में फ़ाइल खोलें (जैसे, http://localhost/example.html). हमारा सुझाव है कि आप डीबग कंसोल वाले ब्राउज़र, जैसे कि Google Chrome का इस्तेमाल करें.

  5. अगर ज़रूरी हो, तो अनुरोध की अनुमति दें. अगर अनुरोध की अनुमति दी जाती है, तो डीबगिंग कंसोल को अनुरोध के एपीआई के जवाब को JSON ऑब्जेक्ट के रूप में दिखाना चाहिए.

Node.js

ज़रूरी शर्तें

  • Node.js को इंस्टॉल किया जाना ज़रूरी है.
  • npm पैकेज मैनेजमेंट टूल (Node.js के साथ आता है).
  • Node.js के लिए Google API क्लाइंट लाइब्रेरी:
    npm install googleapis --save
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • इंटरनेट और वेब ब्राउज़र का ऐक्सेस.
  • एक Google खाता.

अपना प्रोजेक्ट सेट अप करना और कोड सैंपल चलाना

  1. API Console में कोई प्रोजेक्ट बनाएं और Google API Console में OAuth 2.0 क्रेडेंशियल सेट अप करें. अपने क्रेडेंशियल सेट अप करते समय, ऐप्लिकेशन के टाइप को अन्य पर सेट करें.

  2. आपके क्रेडेंशियल से जुड़ी client_secret.json फ़ाइल को लोकल फ़ाइल में सेव करें.

  3. पूरे कोड सैंपल को किसी लोकल फ़ाइल में कॉपी करें और उसी डायरेक्ट्री में मौजूद client_secret.json फ़ाइल का इस्तेमाल करें. इसके अलावा, फ़ाइल की जगह की सही पहचान करने के लिए, सैंपल में बदलाव किया जा सकता है.

  4. कमांड लाइन से सैंपल चलाएं:

    node sample.js
  5. ज़्यादातर सैंपल, STDOUT पर या वेब ऐप्लिकेशन के उदाहरणों के लिए, आपके देखे जा रहे वेब पेज पर कुछ प्रिंट करते हैं. डेटा लिखने वाले अनुरोधों का असर देखने के लिए, YouTube की वेबसाइट पर भी जाएं. जैसे, प्लेलिस्ट या चैनल के सेक्शन बनाने के अनुरोध.

Python

ज़रूरी शर्तें

  • Python 2.6 या इससे नया वर्शन
  • पीआईपी पैकेज को मैनेज करने वाला टूल
  • Python के लिए Google API क्लाइंट लाइब्रेरी:
    pip install --upgrade google-api-python-client
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • उपयोगकर्ता के प्राधिकरण के लिए google-auth, google-auth-oauthlib, और google-auth-httplib2.
    pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
  • Flusk Python वेब ऐप्लिकेशन फ़्रेमवर्क (अगर वेब सर्वर ऐप्लिकेशन के लिए Python सैंपल चलाया जा रहा है).
    pip install --upgrade flask
  • एचटीटीपी लाइब्रेरी का अनुरोध किया जाता है.
    pip install --upgrade requests

अपना प्रोजेक्ट सेट अप करना और कोड सैंपल चलाना

  1. API Console में कोई प्रोजेक्ट बनाएं और Google API Console में OAuth 2.0 क्रेडेंशियल सेट अप करें. अपने क्रेडेंशियल सेट अप करते समय, Flask Python वेब ऐप्लिकेशन फ़्रेमवर्क का इस्तेमाल करने वाले सैंपल के लिए, ऐप्लिकेशन टाइप को वेब ऐप्लिकेशन पर सेट करें. साथ ही, उन क्रेडेंशियल के लिए, अनुमति वाले रीडायरेक्ट यूआरआई भी सेट करें. अगर आपको ऐसा नहीं करना है, तो ऐप्लिकेशन के टाइप को अन्य पर सेट करें.

  2. आपके क्रेडेंशियल से जुड़ी client_secret.json फ़ाइल को लोकल फ़ाइल में सेव करें.

  3. पूरे कोड सैंपल को किसी लोकल फ़ाइल में कॉपी करें और उसी डायरेक्ट्री में मौजूद client_secret.json फ़ाइल का इस्तेमाल करें. इसके अलावा, फ़ाइल की जगह की सही पहचान करने के लिए, सैंपल में बदलाव किया जा सकता है.

  4. कमांड लाइन से सैंपल चलाएं:

    python sample.py
    वेब सर्वर ऐप्लिकेशन के उदाहरणों के लिए अहम जानकारी:

    अगर वेब सर्वर ऐप्लिकेशन के लिए Python सैंपल चलाया जा रहा है, तो स्क्रिप्ट चलाने से लोकल वेब सर्वर चालू हो जाएगा. एपीआई अनुरोध पर असल में काम करने के लिए, आपको ब्राउज़र में दिए गए वेब पेज पर जाना होगा. उदाहरण के लिए, फ़्लास्क वेब ऐप्लिकेशन फ़्रेमवर्क का इस्तेमाल करने वाले Python सैंपल में एक लाइन इस तरह की होती है:

    app.run('localhost', 8080, debug=True)

    यह कोड http://localhost:8080 पर लोकल वेब सर्वर शुरू करता है. हालांकि, जब तक आप ब्राउज़र में http://localhost:8080 पर नहीं जाते, तब तक स्क्रिप्ट एपीआई अनुरोध लागू करने की कोशिश नहीं करती. (आपके लोकल सर्वर का यूआरएल, आपके ऑथराइज़ेशन क्रेडेंशियल के लिए, अनुमति वाले रीडायरेक्ट यूआरआई के तौर पर सेट होना चाहिए.)
  5. ज़्यादातर सैंपल, STDOUT पर या वेब ऐप्लिकेशन के उदाहरणों के लिए, आपके देखे जा रहे वेब पेज पर कुछ प्रिंट करते हैं. डेटा लिखने वाले अनुरोधों का असर देखने के लिए, YouTube की वेबसाइट पर भी जाएं. जैसे, प्लेलिस्ट या चैनल के सेक्शन बनाने के अनुरोध.

फ़िलिपीन पेसो

ज़रूरी शर्तें

  • कमांड-लाइन इंटरफ़ेस (CLI) और JSON एक्सटेंशन के साथ PHP 5.4 या इससे बड़ा वर्शन.
  • Composer डिपेंडेंसी मैनेजमेंट टूल.
  • PHP के लिए Google API क्लाइंट लाइब्रेरी:
    php composer.phar require google/apiclient:^2.0
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

अपना प्रोजेक्ट सेट अप करना और कोड सैंपल चलाना

  1. API Console में कोई प्रोजेक्ट बनाएं और Google API Console में OAuth 2.0 क्रेडेंशियल सेट अप करें. अपने क्रेडेंशियल सेट अप करते समय, ऐप्लिकेशन के टाइप को अन्य पर सेट करें.

  2. आपके क्रेडेंशियल से जुड़ी client_secret.json फ़ाइल को लोकल फ़ाइल में सेव करें.

  3. पूरे कोड सैंपल को किसी लोकल फ़ाइल में कॉपी करें और उसी डायरेक्ट्री में मौजूद client_secret.json फ़ाइल का इस्तेमाल करें. इसके अलावा, फ़ाइल की जगह की सही पहचान करने के लिए, सैंपल में बदलाव किया जा सकता है.

  4. कमांड लाइन से सैंपल चलाएं:

    php sample.php
  5. ज़्यादातर सैंपल, STDOUT पर या वेब ऐप्लिकेशन के उदाहरणों के लिए, आपके देखे जा रहे वेब पेज पर कुछ प्रिंट करते हैं. डेटा लिखने वाले अनुरोधों का असर देखने के लिए, YouTube की वेबसाइट पर भी जाएं. जैसे, प्लेलिस्ट या चैनल के सेक्शन बनाने के अनुरोध.

रुबी

ज़रूरी शर्तें

  • Ruby 2.0 या उसके बाद का वर्शन
  • Ruby के लिए Google API क्लाइंट लाइब्रेरी:
    gem install google-api-client
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

अपना प्रोजेक्ट सेट अप करना और कोड सैंपल चलाना

  1. API Console में कोई प्रोजेक्ट बनाएं और Google API Console में OAuth 2.0 क्रेडेंशियल सेट अप करें. अपने क्रेडेंशियल सेट अप करते समय, ऐप्लिकेशन के टाइप को अन्य पर सेट करें.

  2. आपके क्रेडेंशियल से जुड़ी client_secret.json फ़ाइल को लोकल फ़ाइल में सेव करें.

  3. पूरे कोड सैंपल को किसी लोकल फ़ाइल में कॉपी करें और उसी डायरेक्ट्री में मौजूद client_secret.json फ़ाइल का इस्तेमाल करें. इसके अलावा, फ़ाइल की जगह की सही पहचान करने के लिए, सैंपल में बदलाव किया जा सकता है.

  4. कमांड लाइन से सैंपल चलाएं:

    ruby sample.rb
  5. ज़्यादातर सैंपल, STDOUT पर या वेब ऐप्लिकेशन के उदाहरणों के लिए, आपके देखे जा रहे वेब पेज पर कुछ प्रिंट करते हैं. डेटा लिखने वाले अनुरोधों का असर देखने के लिए, YouTube की वेबसाइट पर भी जाएं. जैसे, प्लेलिस्ट या चैनल के सेक्शन बनाने के अनुरोध.

Apps स्क्रिप्ट
YouTube की सुविधाएं चालू करने के लिए, Google की बेहतर सेवाएं चालू करने के निर्देशों का पालन करें.
जाएं
  1. API Console में कोई प्रोजेक्ट बनाएं और Google API Console में OAuth 2.0 क्रेडेंशियल सेट अप करें. अपने क्रेडेंशियल सेट अप करते समय, ऐप्लिकेशन के टाइप को अन्य पर सेट करें.

  2. आपके क्रेडेंशियल से जुड़ी client_secret.json फ़ाइल को लोकल फ़ाइल में सेव करें.

  3. पूरे कोड सैंपल को किसी लोकल फ़ाइल में कॉपी करें और उसी डायरेक्ट्री में मौजूद client_secret.json फ़ाइल का इस्तेमाल करें. इसके अलावा, फ़ाइल की जगह की सही पहचान करने के लिए, सैंपल में बदलाव किया जा सकता है.

  4. कमांड लाइन से सैंपल चलाएं:

    go run sample.go
  5. ज़्यादातर सैंपल, STDOUT पर या वेब ऐप्लिकेशन के उदाहरणों के लिए, आपके देखे जा रहे वेब पेज पर कुछ प्रिंट करते हैं. डेटा लिखने वाले अनुरोधों का असर देखने के लिए, YouTube की वेबसाइट पर भी जाएं. जैसे, प्लेलिस्ट या चैनल के सेक्शन बनाने के अनुरोध.

बॉयलरप्लेट फ़ंक्शन का इस्तेमाल करना

जैसा कि ऊपर बताया गया है, पूरे कोड सैंपल, एपीआई अनुरोधों की अनुमति देने और उन्हें बनाने के लिए, बॉयलरप्लेट कोड का इस्तेमाल करते हैं. उदाहरण के लिए, Python सैंपल में build_resource फ़ंक्शन, ऐसी डिक्शनरी का इस्तेमाल करता है जो रिसॉर्स प्रॉपर्टी को उनकी वैल्यू से मैप करती है. इससे, ऐसा संसाधन बनाने में मदद मिलती है जिसे शामिल किया जा सके या अपडेट किया जा सके. JavaScript, PHP, Ruby, Go, और Apps Script के लिए मिलते-जुलते फ़ंक्शन दिए गए हैं.

उदाहरण के लिए, नीचे दिए गए टैब दिखाते हैं कि playlist संसाधन बनाने के लिए, इमारत बनाने वाले संसाधनों के बॉयलरप्लेट फ़ंक्शन का इस्तेमाल कैसे किया जाएगा. ध्यान दें कि बॉयलरप्लेट फ़ंक्शन को यह जानने की ज़रूरत नहीं है कि किस तरह के संसाधन बनाए जा रहे हैं.

JavaScript
function createResource(properties) {
  var resource = {};
  var normalizedProps = properties;
  for (var p in properties) {
    var value = properties[p];
    if (p && p.substr(-2, 2) == '[]') {
      var adjustedName = p.replace('[]', '');
      if (value) {
        normalizedProps[adjustedName] = value.split(',');
      }
      delete normalizedProps[p];
    }
  }
  for (var p in normalizedProps) {
    // Leave properties that don't have values out of inserted resource.
    if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) {
      var propArray = p.split('.');
      var ref = resource;
      for (var pa = 0; pa < propArray.length; pa++) {
        var key = propArray[pa];
        if (pa == propArray.length - 1) {
          ref[key] = normalizedProps[p];
        } else {
          ref = ref[key] = ref[key] || {};
        }
      }
    };
  }
  return resource;
}
var resource = createResource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'JavaScript code, interactive',
    'snippet.defaultLanguage': '',
    'status.privacyStatus': 'private'
}
Python
# Build a resource based on a list of properties given as key-value pairs.
# Leave properties with empty values out of the inserted resource.
def build_resource(properties):
  resource = {}
  for p in properties:
    # Given a key like "snippet.title", split into "snippet" and "title", where
    # "snippet" will be an object and "title" will be a property in that object.
    prop_array = p.split('.')
    ref = resource
    for pa in range(0, len(prop_array)):
      is_array = False
      key = prop_array[pa]
      # Convert a name like "snippet.tags[]" to snippet.tags, but handle
      # the value as an array.
      if key[-2:] == '[]':
        key = key[0:len(key)-2:]
        is_array = True
      if pa == (len(prop_array) - 1):
        # Leave properties without values out of inserted resource.
        if properties[p]:
          if is_array:
            ref[key] = properties[p].split(',')
          else:
            ref[key] = properties[p]
      elif key not in ref:
        # For example, the property is "snippet.title", but the resource does
        # not yet have a "snippet" object. Create the snippet object here.
        # Setting "ref = ref[key]" means that in the next time through the
        # "for pa in range ..." loop, we will be setting a property in the
        # resource's "snippet" object.
        ref[key] = {}
        ref = ref[key]
      else:
        # For example, the property is "snippet.description", and the resource
        # already has a "snippet" object.
        ref = ref[key]
  return resource

resource = build_resource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'Python code, interactive',
    'snippet.defaultLanguage': '',
    'status.privacyStatus': 'private'}
  
PHP
// Add a property to the resource.
function addPropertyToResource(&$ref, $property, $value) {
    $keys = explode(".", $property);
    $is_array = false;
    foreach ($keys as $key) {
        // Convert a name like "snippet.tags[]" to "snippet.tags" and
        // set a boolean variable to handle the value like an array.
        if (substr($key, -2) == "[]") {
            $key = substr($key, 0, -2);
            $is_array = true;
        }
        $ref = &$ref[$key];
    }

    // Set the property value. Make sure array values are handled properly.
    if ($is_array && $value) {
        $ref = $value;
        $ref = explode(",", $value);
    } elseif ($is_array) {
        $ref = array();
    } else {
        $ref = $value;
    }
}

// Build a resource based on a list of properties given as key-value pairs.
function createResource($properties) {
    $resource = array();
    foreach ($properties as $prop => $value) {
        if ($value) {
            addPropertyToResource($resource, $prop, $value);
        }
    }
    return $resource;
}

$propertyObject = createResource(array(
    'snippet.title' => 'Sample playlist ',
    'snippet.description' => 'This is a sample playlist description.',
    'snippet.tags[]' => 'Python code, interactive',
    'snippet.defaultLanguage' => '',
    'status.privacyStatus' => 'private'));
रुबी
# Build a resource based on a list of properties given as key-value pairs.
def create_resource(properties)
  resource = {}
  properties.each do |prop, value|
    ref = resource
    prop_array = prop.to_s.split(".")
    for p in 0..(prop_array.size - 1)
      is_array = false
      key = prop_array[p]
      if key[-2,2] == "[]"
        key = key[0...-2]
        is_array = true
      end
      if p == (prop_array.size - 1)
        if is_array
          if value == ""
            ref[key.to_sym] = []
          else
            ref[key.to_sym] = value.split(",")
          end
        elsif value != ""
          ref[key.to_sym] = value
        end
      elsif ref.include?(key.to_sym)
        ref = ref[key.to_sym]
      else
        ref[key.to_sym] = {}
        ref = ref[key.to_sym]
      end
    end
  end
  return resource
end

resource = create_resource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'Ruby code, interactive',
    'snippet.default_language': '',
    'status.privacy_status': 'private'})
Apps स्क्रिप्ट
// Build an object from an object containing properties as key-value pairs
function createResource(properties) {
  var res = {};
  var normalizedProps = {};
  for (var p in properties) {
    var value = properties[p];
    if (p.substr(-2, 2) == '[]' && value) {
      var adjustedName = p.replace('[]', '');
      normalizedProps[adjustedName] = value.split(',');
    } else {
      normalizedProps[p] = value;
    }
  }
  for (var p in normalizedProps) {
    if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) {
      var propArray = p.split('.');
      var ref = res;
      for (var pa = 0; pa < propArray.length; pa++) {
        var key = propArray[pa];
        if (pa == propArray.length - 1) {
          ref[key] = normalizedProps[p];
        } else {
          ref = ref[key] = ref[key] || {};
        }
      }
    };
  }
  return res;
}

var resource = createResource({
    'snippet.title': 'Sample playlist ',
    'snippet.description': 'This is a sample playlist description.',
    'snippet.tags[]': 'Apps Script code, interactive',
    'snippet.defaultLanguage': '',
    'status.privacyStatus': 'private'
});
जाएं
func addPropertyToResource(ref map[string]interface{}, keys []string, value string, count int) map[string]interface{} {
        for k := count; k < (len(keys) - 1); k++ {
                switch val := ref[keys[k]].(type) {
                case map[string]interface{}:
                        ref[keys[k]] = addPropertyToResource(val, keys, value, (k + 1))
                case nil:
                        next := make(map[string]interface{})
                        ref[keys[k]] = addPropertyToResource(next, keys, value, (k + 1))
                }
        }
        // Only include properties that have values.
        if (count == len(keys) - 1 && value != "") {
                valueKey := keys[len(keys)-1]
                if valueKey[len(valueKey)-2:] == "[]" {
                        ref[valueKey[0:len(valueKey)-2]] = strings.Split(value, ",")
                } else if len(valueKey) > 4 && valueKey[len(valueKey)-4:] == "|int" {
                        ref[valueKey[0:len(valueKey)-4]], _ = strconv.Atoi(value)
                } else if value == "true" {
                        ref[valueKey] = true
                } else if value == "false" {
                        ref[valueKey] = false
                } else {
                        ref[valueKey] = value
                }
        }
        return ref
}

func createResource(properties map[string]string) string {
        resource := make(map[string]interface{})
        for key, value := range properties {
                keys := strings.Split(key, ".")
                ref := addPropertyToResource(resource, keys, value, 0)
                resource = ref
        }
        propJson, err := json.Marshal(resource)
        if err != nil {
               log.Fatal("cannot encode to JSON ", err)
        }
        return string(propJson)
}

func main() {
        properties := (map[string]string{
                 "snippet.title": "Sample playlist ",
                 "snippet.description": "This is a sample playlist description.",
                 "snippet.tags[]": "Go code, interactive",
                 "snippet.defaultLanguage": "",
                 "status.privacyStatus": "private",
        })
        res := createResource(properties)

मौजूदा संसाधन लोड करें

किसी मौजूदा संसाधन को अपडेट करने के अनुरोध की जांच करने के लिए, अपडेट फ़ॉर्म में उस संसाधन की मौजूदा प्रॉपर्टी की वैल्यू लोड की जा सकती हैं. उदाहरण के लिए, किसी वीडियो का मेटाडेटा अपडेट करने के लिए, id प्रॉपर्टी फ़ील्ड में वीडियो आईडी डालें और संसाधन लोड करें बटन पर क्लिक करें. मौजूदा प्रॉपर्टी की वैल्यू, फ़ॉर्म में लोड हो जाती हैं. साथ ही, उन वैल्यू को अपडेट किया जा सकता है जिनमें बदलाव करना है.