หน้านี้จะอธิบายวิธีเข้าถึงฟีเจอร์การแสดงตัวอย่างของ Classroom API และ ระบุเวอร์ชันตัวอย่าง
ข้อควรพิจารณา 2 ข้อเมื่อใช้ฟีเจอร์แสดงตัวอย่างเมื่อเทียบกับเวอร์ชันเสถียร v1 API ได้แก่
- ไม่มีการเปิดเผยฟีเจอร์ API ในโปรแกรมทดลองใช้ก่อนเปิดตัวหรือโปรแกรมทดลองใช้ใน ไลบรารีของไคลเอ็นต์มาตรฐาน และอาจเข้าถึงไม่ได้โดยค่าเริ่มต้นผ่าน HTTP
- อาจมีสถานะหรือเวอร์ชัน API หลายรายการในช่วงเวลาหนึ่ง เวอร์ชันตัวอย่าง
เปิดใช้ฟีเจอร์ตัวอย่างในไลบรารีของไคลเอ็นต์
ตัวเลือกทั่วไปสำหรับการใช้ Classroom API คือการใช้ไลบรารีของไคลเอ็นต์ มี คือไลบรารีของไคลเอ็นต์ 3 ประเภท
- ไลบรารีของไคลเอ็นต์ที่สร้างขึ้นแบบไดนามิก
- ไลบรารีของไคลเอ็นต์แบบคงที่ที่ Google มีให้
- ไลบรารีของไคลเอ็นต์ที่คุณกำหนดเอง
การใช้ไลบรารีแบบคงที่ที่สร้างขึ้นแบบไดนามิกหรือที่ Google จัดเตรียมไว้ให้ วิธีที่แนะนำในการใช้ API โปรดดูสร้างไลบรารีของไคลเอ็นต์หากต้องการ สร้างคลังของคุณเอง การสร้างคลังของคุณเองอยู่นอกเหนือขอบเขตของการดำเนินการนี้ แต่คุณควรอ่านส่วนไลบรารีไดนามิกเพื่อดูข้อมูลเกี่ยวกับ แสดงตัวอย่างป้ายกำกับและบทบาทใน Discovery
ไลบรารีแบบไดนามิก
ไลบรารีในภาษาต่างๆ เช่น Python จะสร้างไลบรารีของไคลเอ็นต์ขณะรันไทม์โดยใช้ เอกสารการค้นพบจากบริการ Discovery
เอกสารการค้นพบเป็นข้อกำหนดที่เครื่องอ่านได้สำหรับอธิบายและ การใช้ REST API ซึ่งใช้เพื่อสร้างไลบรารีของไคลเอ็นต์, ปลั๊กอิน IDE และ เครื่องมืออื่นๆ ที่โต้ตอบกับ Google APIs บริการหนึ่งอาจมี เอกสารการค้นพบ
เอกสาร Discovery สำหรับบริการ Classroom API (classroom.googleapis.com
)
จะอยู่ที่ปลายทางต่อไปนี้
https://classroom.googleapis.com/$discovery/rest?labels=PREVIEW_LABEL&version=v1&key=API_KEY
ความแตกต่างที่สำคัญสำหรับการทำงานกับ API การแสดงตัวอย่างคือการระบุ
ที่เหมาะสมlabel
สำหรับตัวอย่างแบบสาธารณะใน Classroom ป้ายกำกับนั้น
DEVELOPER_PREVIEW
หากต้องการสร้างไลบรารี Python และสร้างอินสแตนซ์บริการ Classroom ด้วย คุณสามารถระบุ 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 จากแหล่งข้อมูล ไลบรารีเหล่านี้จัดเตรียมไว้ให้คุณและมีฟีเจอร์แสดงตัวอย่าง รวมอยู่ในระบบแล้ว
สำหรับตัวอย่างแบบสาธารณะ ไลบรารีของไคลเอ็นต์ Classroom จะปรากฏพร้อมกับ ไลบรารีไคลเอ็นต์ของโปรแกรมทดลองใช้สำหรับนักพัฒนาแอป Workspace สำหรับตัวอย่างแบบส่วนตัว โปรดติดต่อผู้ติดต่อของ Google หากต้องการสร้างไลบรารีแบบคงที่
คุณอาจต้องแก้ไขการกำหนดค่าทรัพยากร Dependency ทั่วไปเพื่อใช้ฟีเจอร์เหล่านี้ ไลบรารีในเครื่องมากกว่าการนำเข้าไลบรารีไคลเอ็นต์มาตรฐาน จะมีฟีเจอร์แสดงตัวอย่างได้
ตัวอย่างเช่น หากต้องการใช้ไลบรารีของไคลเอ็นต์ Go คุณจะต้องใช้ replace
ในไฟล์ go.mod
ของคุณเพื่อกำหนดให้ใช้โมดูลจากไดเรกทอรีในเครื่อง:
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 ให้เพิ่มไคลเอ็นต์ Node.js
ดาวน์โหลดไลบรารี (googleapis-classroom-1.0.4.tgz
) เป็นทรัพยากร Dependency ในเครื่องใน
package.json
:
{
"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
ในแอปพลิเคชันของคุณ
นอกเหนือจากทรัพยากร Dependency ทั่วไป และสร้างอินสแตนซ์บริการ 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 ไปยังเมธอดที่มีความสามารถในการดูตัวอย่าง
แต่จะระบุข้อมูลเกี่ยวกับเวอร์ชันต่างๆ ที่พร้อมใช้งานและฟีเจอร์ที่มีในนั้น ในแผนกลยุทธ์ของ Classroom API เอกสารอ้างอิงสำหรับวิธีการและ ยังอธิบายถึงเวอร์ชันที่มีเมธอดหรือฟิลด์อยู่
การระบุเวอร์ชันสามารถทำได้โดยการตั้งค่าช่อง PreviewVersion ในคำขอ
ตัวอย่างเช่น หากต้องการสร้างเกณฑ์การให้คะแนนด้วย Rubrics CRUD Preview API คุณต้องตั้งค่า
previewVersion
ไปยัง V1_20231110_PREVIEW
ในคำขอ CREATE:
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
นอกจากนี้ คุณยังสามารถใช้ Classroom API โดยตรงกับ HTTP ได้อีกด้วย
หากสร้างคำขอ HTTP โดยไม่มีไลบรารีของไคลเอ็นต์ คุณยังคงต้องเปิดใช้
ฟีเจอร์ตัวอย่างจะระบุเวอร์ชันตัวอย่าง ซึ่งทำได้ด้วยการตั้งค่า label
ที่มีส่วนหัว X-Goog-Visibilities
และเวอร์ชันตัวอย่างที่กล่าวถึงข้างต้นเป็น
พารามิเตอร์การค้นหาหรือฟิลด์เนื้อหา POST (ดู API แต่ละรายการที่เหมาะสม
เอกสารอ้างอิง) สำหรับเวอร์ชันตัวอย่างแบบสาธารณะ ป้ายกำกับคือ DEVELOPER_PREVIEW
ตัวอย่างเช่น คำขอ curl ต่อไปนี้ทำการเรียก LIST ไปยังบริการเกณฑ์การให้คะแนน พร้อมป้ายกำกับระดับการเข้าถึงและเวอร์ชันตัวอย่างที่เหมาะสม
curl \
'https://classroom.googleapis.com/v1/courses/COURSE_ID/courseWork/COURSE_WORK_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_WORK_ID/rubrics/RUBRIC_ID?updateMask=criteria&key=API_KEY&previewVersion=V1_20231110_PREVIEW' \
--header 'X-Goog-Visibilities: DEVELOPER_PREVIEW' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"criteria":"[...]"}' \
--compressed
API สำหรับคำขอ HTTP แต่ละรายการอธิบายไว้ในเอกสาร REST