ऐड-ऑन के रिलीज़ होने से पहले, उसे इस्तेमाल करने की सुविधा में, झलक देखने के तरीके

रिलीज़ होने से पहले इस्तेमाल करने या निजी झलक दिखाने वाले प्रोग्राम में एपीआई के तरीके निजी होते हैं. इसका मतलब है कि इन्हें स्टैंडर्ड क्लाइंट लाइब्रेरी में नहीं दिखाया जाता है और हो सकता है कि इन्हें एचटीटीपी पर डिफ़ॉल्ट रूप से ऐक्सेस न किया जा सके. इस पेज पर बताया गया है कि झलक दिखाने के इन तरीक़ों को कैसे ऐक्सेस किया जा सकता है.

इस दस्तावेज़ में, Preview API इस्तेमाल करने के चार विकल्पों के बारे में बताया गया है:

  1. Google की उपलब्ध कराई गई स्टैटिक क्लाइंट लाइब्रेरी.
  2. डाइनैमिक रूप से जनरेट की गई क्लाइंट लाइब्रेरी.
  3. डायरेक्ट एचटीटीपी अनुरोध.
  4. आपकी कस्टम क्लाइंट लाइब्रेरी.

Google की दी गई स्टैटिक या डाइनैमिक रूप से जनरेट की गई लाइब्रेरी का इस्तेमाल करना, एपीआई को इस्तेमाल करने का सुझाया गया तरीका है.

स्टैटिक लाइब्रेरी

Java, Node.js, PHP, और C# जैसी भाषाओं की क्लाइंट लाइब्रेरी, सोर्स से ही बनाई जानी चाहिए. ये लाइब्रेरी आपके लिए क्लाइंट लाइब्रेरी डाउनलोड में उपलब्ध कराई जाती हैं और इनमें झलक देखने के तरीके पहले से मौजूद होते हैं.

इन लोकल लाइब्रेरी का इस्तेमाल करने के लिए, आपको अपनी सामान्य डिपेंडेंसी कॉन्फ़िगरेशन में बदलाव करना पड़ सकता है. आपको उन स्टैंडर्ड क्लाइंट लाइब्रेरी को इंपोर्ट करने के बजाय, इन लाइब्रेरी का इस्तेमाल करना होगा जिनमें झलक के तरीके नहीं होते.

उदाहरण के लिए, अगर Node.js और npm का इस्तेमाल किया जा रहा है, तो Node.js क्लाइंट लाइब्रेरी डाउनलोड (googleapis-classroom-1.0.4.tgz) को package.json में लोकल डिपेंडेंसी के तौर पर जोड़ें:

{
  "name": "nodejs-classroom-example",
  "version": "1.0.0",
  ...
  "dependencies": {
    "@google-cloud/local-auth": "^2.1.0",
    "googleapis": "^95.0.0",
    "classroom-with-addons": "file:./googleapis-classroom-1.0.4.tgz"
  }
}

इसके बाद, आपको अपने ऐप्लिकेशन में सामान्य डिपेंडेंसी के साथ-साथ, classroom-with-addons मॉड्यूल की ज़रूरत होगी और उस मॉड्यूल से classroom सेवा को इंस्टैंशिएट करना होगा:

const {authenticate} = require('@google-cloud/local-auth');
const {google} = require('googleapis');
const classroomWithAddons = require('classroom-with-addons');

...

const classroom = classroomWithAddons.classroom({
  version: 'v1',
  auth: auth,
});

...

डाइनैमिक लाइब्रेरी

Python जैसी भाषाओं की लाइब्रेरी, रनटाइम के दौरान डिस्कवरी सेवा के डिस्कवरी दस्तावेज़ का इस्तेमाल करके, क्लाइंट लाइब्रेरी जनरेट करती हैं.

डिस्कवरी दस्तावेज़ REST API के बारे में बताने और इस्तेमाल करने के लिए, मशीन से पढ़ा जा सकने वाला स्पेसिफ़िकेशन है. इसका इस्तेमाल क्लाइंट लाइब्रेरी बनाने, IDE प्लगिन, और Google API के साथ इंटरैक्ट करने वाले दूसरे टूल बनाने के लिए किया जाता है. एक सेवा कई डिस्कवरी दस्तावेज़ दे सकती है.

Classroom एपीआई सेवा (classroom.googleapis.com) के लिए, डिस्कवरी दस्तावेज़ इस एंडपॉइंट पर देखे जा सकते हैं:

  • https://classroom.googleapis.com/$discovery/rest?labels=<PREVIEW_LABEL>&version=v1&key=<PREVIEW_LABEL>

Python लाइब्रेरी जनरेट करने और ऐड-ऑन तरीकों की मदद से Classroom सेवा को इंस्टैंशिएट करने के लिए, सही सेवा, क्रेडेंशियल, और लेबल के साथ डिस्कवरी यूआरएल तय किया जा सकता है:

classroom_service_with_rubrics = googleapiclient.discovery.build(
  serviceName="classroom",
  version="v1",
  credentials=credentials,
  static_discovery=False,
  discoveryServiceUrl=f"https://classroom.googleapis.com/$discovery/rest?labels=ADD_ONS_ALPHA&key=ABCXYZ")

हर भाषा के बारे में जानने के लिए, अलग-अलग Google API क्लाइंट लाइब्रेरी का दस्तावेज़ देखें. प्रीव्यू एपीआई के साथ काम करने के लिए सबसे अहम अंतर यह है कि सही label तय किया गया हो. इस झलक में वह लेबल ADD_ONS_ALPHA है.

एचटीटीपी अनुरोध

अगर क्लाइंट लाइब्रेरी के बिना एचटीटीपी अनुरोध किए जाते हैं, तो लेबल (ADD_ONS_ALPHA) को X-Goog-Visibilities हेडर के तौर पर शामिल करना न भूलें.

उदाहरण के लिए, किसी पोस्ट के नीचे ऐड-ऑन से बनाए गए सभी अटैचमेंट देखने के लिए, नीचे दिए गए कर्ल अनुरोध का इस्तेमाल करें:

curl \
  'https://classroom.googleapis.com/v1/courses/[courseId]/posts/[postId]/addOnAttachments?key=[YOUR_API_KEY]' \
  --header 'X-Goog-Visibilities: ADD_ONS_ALPHA' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

हर एचटीटीपी अनुरोध के एपीआई के बारे में REST दस्तावेज़ में बताया गया है.

कस्टम क्लाइंट लाइब्रेरी

अगर आपको अपनी लाइब्रेरी बनानी है, तो क्लाइंट लाइब्रेरी बनाना देखें. अपनी खुद की लाइब्रेरी बनाना इस गाइड के दायरे के बाहर है, लेकिन झलक लेबल और 'खोज' में उनकी भूमिका के बारे में जानने के लिए आपको डाइनैमिक लाइब्रेरी सेक्शन देखना चाहिए.