প্রিভিউ API অ্যাক্সেস করুন

এই পৃষ্ঠাটি বর্ণনা করে যে আপনি কীভাবে Classroom API পূর্বরূপ বৈশিষ্ট্যগুলি অ্যাক্সেস করতে পারেন এবং পূর্বরূপ সংস্করণ নির্দিষ্ট করতে পারেন৷

স্থিতিশীল v1 API-এর সাথে তুলনা করার সময় পূর্বরূপ বৈশিষ্ট্যগুলি ব্যবহার করার সময় দুটি বিবেচনা হল:

  1. প্রারম্ভিক অ্যাক্সেস বা পূর্বরূপ প্রোগ্রামগুলিতে API বৈশিষ্ট্যগুলি স্ট্যান্ডার্ড ক্লায়েন্ট লাইব্রেরিতে প্রকাশ করা হয় না এবং HTTP-তে ডিফল্টরূপে অ্যাক্সেসযোগ্য নাও হতে পারে।
  2. যে কোনো সময়ে প্রিভিউতে একাধিক API স্টেট বা সংস্করণ থাকতে পারে।

ক্লায়েন্ট লাইব্রেরিতে পূর্বরূপ বৈশিষ্ট্যগুলি সক্ষম করুন৷

ক্লাসরুম API ব্যবহার করার জন্য একটি সাধারণ বিকল্প হল একটি ক্লায়েন্ট লাইব্রেরি। তিন ধরনের ক্লায়েন্ট লাইব্রেরি আছে:

  1. গতিশীলভাবে উত্পন্ন ক্লায়েন্ট লাইব্রেরি
  2. Google-প্রদত্ত স্ট্যাটিক ক্লায়েন্ট লাইব্রেরি
  3. আপনার নিজস্ব কাস্টম ক্লায়েন্ট লাইব্রেরি

গতিশীলভাবে জেনারেট করা বা Google-প্রদত্ত স্ট্যাটিক লাইব্রেরি ব্যবহার করা হল API ব্যবহার করার প্রস্তাবিত উপায়। আপনার নিজের লাইব্রেরি তৈরি করতে হলে বিল্ড ক্লায়েন্ট লাইব্রেরি দেখুন। আপনার নিজস্ব লাইব্রেরি তৈরি করা এই গাইডের সুযোগের বাইরে, তবে প্রিভিউ লেবেল এবং ডিসকভারিতে তাদের ভূমিকা সম্পর্কে জানতে আপনার ডায়নামিক লাইব্রেরি বিভাগটি পর্যালোচনা করা উচিত।

গতিশীল লাইব্রেরি

পাইথনের মতো ভাষায় লাইব্রেরিগুলি ডিসকভারি পরিষেবা থেকে একটি ডিসকভারি ডকুমেন্ট ব্যবহার করে রানটাইমে ক্লায়েন্ট লাইব্রেরি তৈরি করে।

একটি ডিসকভারি ডকুমেন্ট হল একটি মেশিন-পাঠযোগ্য স্পেসিফিকেশন যা REST API-এর বর্ণনা এবং ব্যবহার করার জন্য। এটি ক্লায়েন্ট লাইব্রেরি, IDE প্লাগইন এবং Google API-এর সাথে ইন্টারঅ্যাক্ট করে এমন অন্যান্য টুল তৈরি করতে ব্যবহৃত হয়। একটি পরিষেবা একাধিক আবিষ্কারের নথি প্রদান করতে পারে।

Classroom API পরিষেবার জন্য আবিষ্কারের নথি ( classroom.googleapis.com ) নিম্নলিখিত শেষ পয়েন্টে পাওয়া যাবে:

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

পূর্বরূপ API-এর সাথে কাজ করার জন্য গুরুত্বপূর্ণ পার্থক্য হল উপযুক্ত label নির্দিষ্ট করা। ক্লাসরুমের সর্বজনীন পূর্বরূপগুলির জন্য সেই লেবেলটি হল DEVELOPER_PREVIEW

পাইথন লাইব্রেরি তৈরি করতে এবং প্রিভিউ পদ্ধতির সাহায্যে ক্লাসরুম পরিষেবা চালু করতে, আপনি উপযুক্ত পরিষেবা, শংসাপত্র এবং লেবেল সহ ডিসকভারি URL নির্দিষ্ট করতে পারেন:

classroom_service_with_preview_features = googleapiclient.discovery.build(
  serviceName='classroom',
  version='v1',
  credentials=credentials,
  static_discovery=False,
  discoveryServiceUrl='https://classroom.googleapis.com/$discovery/rest?labels=DEVELOPER_PREVIEW&key=API_KEY)'

প্রতিটি ভাষার বিশদ বিবরণের জন্য পৃথক Google API ক্লায়েন্ট লাইব্রেরি ডকুমেন্টেশন দেখুন।

স্ট্যাটিক লাইব্রেরি

Java, Node.js, PHP, C# এবং Go-এর মতো ভাষায় ক্লায়েন্ট লাইব্রেরি উৎস থেকে তৈরি করতে হবে। এই লাইব্রেরিগুলি আপনার জন্য সরবরাহ করা হয়েছে এবং পূর্বরূপ বৈশিষ্ট্যগুলি ইতিমধ্যেই অন্তর্ভুক্ত করা হয়েছে৷

সর্বজনীন প্রিভিউগুলির জন্য, ক্লাসরুম ক্লায়েন্ট লাইব্রেরিগুলি অন্যান্য ওয়ার্কস্পেস ডেভেলপার প্রিভিউ প্রোগ্রাম ক্লায়েন্ট লাইব্রেরির সাথে পাওয়া যেতে পারে। ব্যক্তিগত পূর্বরূপগুলির জন্য, আপনার যদি স্ট্যাটিক লাইব্রেরি তৈরি করা প্রয়োজন হয় তবে আপনার Google পরিচিতির সাথে যোগাযোগ করুন।

স্ট্যান্ডার্ড ক্লায়েন্ট লাইব্রেরিগুলি আমদানি করার পরিবর্তে এই স্থানীয় লাইব্রেরিগুলি ব্যবহার করার জন্য আপনাকে আপনার সাধারণ নির্ভরতা কনফিগারেশন পরিবর্তন করতে হতে পারে, যেগুলির পূর্বরূপ বৈশিষ্ট্য নেই৷

উদাহরণস্বরূপ, Go ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে, স্থানীয় ডিরেক্টরি থেকে একটি মডিউল প্রয়োজনের জন্য আপনাকে আপনার go.mod ফাইলে replace নির্দেশিকা ব্যবহার করতে হবে:

module example.com/app

go 1.21.1

require (
    golang.org/x/oauth2 v0.12.0
    google.golang.org/api v0.139.0 // Classroom library is in here.
)

require (
  ...
)

// Use a local copy of the Go client library.
replace google.golang.org/api v0.139.0 => ../google-api-go-client

আরেকটি উদাহরণ হিসেবে, আপনি যদি Node.js এবং npm ব্যবহার করেন, তাহলে package.json এ স্থানীয় নির্ভরতা হিসেবে Node.js ক্লায়েন্ট লাইব্রেরি ডাউনলোড ( googleapis-classroom-1.0.4.tgz ) যোগ করুন :

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

তারপর আপনার অ্যাপ্লিকেশনে, নিয়মিত নির্ভরতা ছাড়াও classroom-with-preview-features মডিউল প্রয়োজন, এবং সেই মডিউল থেকে classroom পরিষেবা চালু করুন:

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

...

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

...

একটি পূর্বরূপ API সংস্করণ নির্দিষ্ট করুন৷

আপনি স্ট্যাটিক বা ডাইনামিক লাইব্রেরি ব্যবহার করুন না কেন, প্রিভিউ ক্ষমতা সহ পদ্ধতিতে API কল করার সময় আপনাকে অবশ্যই পূর্বরূপ সংস্করণ নির্দিষ্ট করতে হবে।

বিভিন্ন উপলব্ধ সংস্করণ, এবং তাদের অন্তর্ভুক্ত বৈশিষ্ট্যগুলি ক্লাসরুম API রোডম্যাপে নথিভুক্ত করা হয়েছে। পদ্ধতি এবং ক্ষেত্রগুলির জন্য রেফারেন্স ডকুমেন্টেশনও বর্ণনা করে যে পদ্ধতি বা ক্ষেত্রটি কোন সংস্করণে উপলব্ধ।

অনুরোধে প্রিভিউ সংস্করণ ক্ষেত্র সেট করে একটি সংস্করণ নির্দিষ্ট করা হয়। উদাহরণস্বরূপ, Rubrics CRUD প্রিভিউ API দিয়ে একটি রুব্রিক তৈরি করতে, আপনি previewVersion V1_20231110_PREVIEW তে সেট করবেন ক্রিয়েট অনুরোধে:

rubric = service.courses().courseWork().rubrics().create(
            courseId=course_id,
            courseWorkId=coursework_id,
            # Specify the preview version. Rubrics CRUD capabilities are
            # supported in V1_20231110_PREVIEW and later.
            previewVersion="V1_20231110_PREVIEW",
            body=body
).execute()

আপনি কোন সংস্করণ ব্যবহার করছেন তা বুঝতে সাহায্য করার জন্য একটি পূর্বরূপ পদ্ধতি কলের সাথে যুক্ত সংস্থানগুলিতে কলে শুধুমাত্র-পঠন ক্ষেত্র হিসাবে ব্যবহৃত previewVersion রয়েছে৷ উদাহরণস্বরূপ, পূর্ববর্তী CREATE কলের প্রতিক্রিয়াটিতে V1_20231110_PREVIEW মান রয়েছে:

print(json.dumps(rubric, indent=4))
{
  "courseId": "123",
  "courseWorkId": "456",
  "creationTime": "2023-10-23T18:18:29.932Z",
  "updateTime": "2023-10-23T18:18:29.932Z",
  "id": "789",
  "criteria": [...],
  # The preview version used in the call that returned this resource.
  "previewVersion": "V1_20231110_PREVIEW",
  ...
}

HTTP অনুরোধ

এইচটিটিপির সাথে সরাসরি ক্লাসরুম API ব্যবহার করাও সম্ভব।

আপনি যদি ক্লায়েন্ট লাইব্রেরি ছাড়াই HTTP অনুরোধ করেন, তবে আপনাকে এখনও একটি পূর্বরূপ সংস্করণ নির্দিষ্ট করে পূর্বরূপ বৈশিষ্ট্যগুলি সক্ষম করতে হবে। এটি একটি X-Goog-Visibilities শিরোনাম সহ একটি label সেট করে এবং পূর্বোক্ত প্রিভিউ সংস্করণটিকে একটি কোয়েরি প্যারামিটার বা POST বডি ফিল্ড হিসাবে সেট করে করা হয়৷ সর্বজনীন পূর্বরূপগুলির জন্য, লেবেলটি হল DEVELOPER_PREVIEW

উদাহরণস্বরূপ, নিম্নলিখিত কার্ল অনুরোধটি উপযুক্ত দৃশ্যমানতা লেবেল এবং পূর্বরূপ সংস্করণ সহ রুব্রিক্স পরিষেবাতে একটি তালিকা কল করে:

curl \
  'https://classroom.googleapis.com/v1/courses/COURSE_ID/courseWork/COURSE_ID/rubrics?key=API_KEY&previewVersion=V1_20231110_PREVIEW' \
  --header 'X-Goog-Visibilities: DEVELOPER_PREVIEW' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

আপনি অনুরোধের অংশে পূর্বরূপ সংস্করণটিও নির্দিষ্ট করতে পারেন, উদাহরণস্বরূপ যখন একটি POST অনুরোধ করা হয়:

curl --request PATCH \
  'https://classroom.googleapis.com/v1/courses/COURSE_ID/courseWork/COURSE_ID//rubrics/RUBRIC_ID?updateMask=criteria&key=API_KEY' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"criteria":"[...]", "preview_version": "V1_20231110_PREVIEW"}' \
  --compressed

প্রতিটি HTTP অনুরোধের API REST ডকুমেন্টেশনে বর্ণনা করা হয়েছে।