เอกสารนี้แสดงวิธีจัดกลุ่มการเรียก API เพื่อลดจำนวนการเชื่อมต่อที่ไคลเอ็นต์ต้องสร้าง การประมวลผลแบบกลุ่มช่วยเพิ่มประสิทธิภาพของแอปพลิเคชันได้โดยลดเวลาในการรับส่งข้อมูลผ่านเครือข่ายและเพิ่มปริมาณงาน
ภาพรวม
การเชื่อมต่อแต่ละครั้งที่ไคลเอ็นต์ของคุณสร้างจะทำให้เกิดค่าใช้จ่ายเพิ่มเติมจำนวนหนึ่ง Google สไลด์ API รองรับการทำงานแบบกลุ่มเพื่อให้ไคลเอ็นต์วางออบเจ็กต์คำขอหลายรายการได้ โดยแต่ละรายการจะระบุคำขอประเภทเดียวที่จะดำเนินการ ลงในคำขอแบบกลุ่มเดียว คำขอแบบกลุ่มช่วยเพิ่มประสิทธิภาพได้โดย การรวมคำขอย่อยหลายรายการไว้ในการเรียกเซิร์ฟเวอร์ครั้งเดียว และเรียก การตอบกลับรายการเดียวกลับมา
เราขอแนะนำให้ผู้ใช้ส่งคำขอหลายรายการเป็นกลุ่มเสมอ ตัวอย่างสถานการณ์ที่คุณใช้การประมวลผลแบบกลุ่มได้มีดังนี้
- คุณเพิ่งเริ่มใช้ API และมีข้อมูลจำนวนมากที่ต้องอัปโหลด
- คุณต้องอัปเดตข้อมูลเมตาหรือพร็อพเพอร์ตี้ เช่น การจัดรูปแบบ ในออบเจ็กต์หลายรายการ
- คุณต้องลบออบเจ็กต์จำนวนมาก
ข้อควรพิจารณาเกี่ยวกับขีดจำกัด การให้สิทธิ์ และทรัพยากร Dependency
ต่อไปนี้คือรายการอื่นๆ ที่ควรพิจารณาเมื่อใช้การอัปเดตแบบเป็นชุด
- คำขอแบบกลุ่มแต่ละรายการ รวมถึงคำขอย่อยทั้งหมด จะนับเป็นคำขอ API หนึ่งรายการที่ส่งไปยังโควต้าการใช้งาน
- ระบบจะตรวจสอบสิทธิ์คำขอแบบกลุ่มเพียงครั้งเดียว การตรวจสอบสิทธิ์ครั้งเดียวนี้จะมีผล กับออบเจ็กต์การอัปเดตแบบเป็นกลุ่มทั้งหมดในคำขอ
- เซิร์ฟเวอร์จะประมวลผลคำขอรองตามลำดับเดียวกับที่ปรากฏในคำขอแบบกลุ่ม คำขอย่อยในภายหลังอาจขึ้นอยู่กับการดำเนินการที่ทำใน คำขอย่อยก่อนหน้า ตัวอย่างเช่น ในคำขอแบบกลุ่มเดียวกัน ผู้ใช้สามารถ แทรกข้อความลงในเอกสารที่มีอยู่แล้วจัดรูปแบบข้อความนั้น
รายละเอียดแบทช์
คำขอแบบกลุ่มประกอบด้วยbatchUpdateการเรียกเมธอด
ที่มีคำขอย่อยหลายรายการ เช่น เพื่อเพิ่มแล้วจัดรูปแบบงานนำเสนอ
ระบบจะตรวจสอบความถูกต้องของแต่ละคำขอก่อนนำไปใช้ ระบบจะใช้คำขอย่อยทั้งหมดในการอัปเดตแบบกลุ่ม พร้อมกัน กล่าวคือ หากคำขอใดไม่ถูกต้อง การอัปเดตทั้งหมดจะไม่สำเร็จและระบบจะไม่ใช้การเปลี่ยนแปลงใดๆ (ซึ่งอาจขึ้นอยู่กับคำขออื่น)
คำขอบางรายการจะให้คำตอบพร้อมข้อมูลเกี่ยวกับคำขอที่ส่ง ตัวอย่างเช่น คำขออัปเดตแบบเป็นชุดทั้งหมดเพื่อเพิ่มออบเจ็กต์จะแสดงการตอบกลับเพื่อให้คุณเข้าถึงข้อมูลเมตาของออบเจ็กต์ที่เพิ่มใหม่ได้ เช่น รหัสหรือชื่อ
แนวทางนี้ช่วยให้คุณสร้างเอกสาร Google ทั้งหมดได้โดยใช้คำขออัปเดตแบบเป็นกลุ่มของ API เดียว ที่มีคำขอย่อยหลายรายการ
รูปแบบของคำขอแบบกลุ่ม
คำขอคือคำขอ JSON รายการเดียวที่มีคำขอย่อยแบบซ้อนกันหลายรายการ
ซึ่งมีพร็อพเพอร์ตี้ที่ต้องระบุ 1 รายการคือ requests ระบบจะสร้างคำขอ
ในอาร์เรย์ของคำขอแต่ละรายการ คำขอแต่ละรายการใช้ JSON เพื่อแสดงออบเจ็กต์คำขอและมีพร็อพเพอร์ตี้ของออบเจ็กต์
รูปแบบของการตอบกลับแบบกลุ่ม
รูปแบบการตอบกลับสำหรับคำขอแบบกลุ่มจะคล้ายกับรูปแบบคำขอ การตอบกลับของเซิร์ฟเวอร์มีการตอบกลับที่สมบูรณ์ของออบเจ็กต์การตอบกลับเดียว
พร็อพเพอร์ตี้ของออบเจ็กต์ JSON หลักชื่อ replies การตอบกลับ
จะแสดงในอาร์เรย์ โดยการตอบกลับแต่ละรายการสำหรับคำขอหนึ่งๆ จะมีลำดับดัชนีเดียวกันกับคำขอที่เกี่ยวข้อง
คำขอบางรายการไม่มีคำตอบและคำตอบที่ดัชนีอาร์เรย์นั้นว่างเปล่า
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงการใช้การประมวลผลแบบกลุ่มกับ Slides API
ส่งคำขอ
คำขอแบบกลุ่มตัวอย่างนี้แสดงวิธีดำเนินการต่อไปนี้
เพิ่ม
presentations.pagesทรัพยากรลงในงานนำเสนอที่มีอยู่ โดยมีinsertionIndexเป็น1โดยใช้ วิธีCreateSlideRequestเพิ่ม
shapeTypeประเภทTEXT_BOXลงในสไลด์ใหม่โดยใช้เมธอดCreateShapeRequestแทรกข้อความ "Hello World" ลงในฟิลด์ใหม่โดยใช้เมธอด
InsertTextRequest
{
"requests":[
{
"createSlide":{
"insertionIndex":1,
"objectId":"newSlide"
}
},
{
"createShape":{
"elementProperties":{
"pageObjectId":"newSlide",
"size":{
"height":{
"magnitude":50,
"unit":"PT"
},
"width":{
"magnitude":200,
"unit":"PT"
}
}
},
"shapeType":"TEXT_BOX",
"objectId":"newTextBox"
}
},
{
"insertText":{
"objectId":"newTextBox",
"text":"Hello World"
}
}
]
}การตอบกลับ
การตอบกลับแบบกลุ่มตัวอย่างนี้จะแสดงข้อมูลเกี่ยวกับวิธีใช้คำขอแบบกลุ่มย่อยแต่ละรายการภายในคำขอแบบกลุ่ม โปรดทราบว่าเมธอด
InsertTextRequest
ไม่มีการตอบกลับ ดังนั้นค่าดัชนีของอาร์เรย์ที่ [2]
จึงประกอบด้วยวงเล็บปีกกาว่าง คำขอแบบกลุ่มจะแสดงพร็อพเพอร์ตี้
WriteControl
ซึ่งแสดงวิธีดำเนินการคำขอเขียน
{
"requiredRevisionId": ID
"presentationId": "",
"replies":[
{
"createSlide":{
"objectId":"newSlide"
}
},
{
"createShape":{
"objectId":"newTextBox"
}
},
{
}
],
"writeControl":{
"requiredRevisionId": REVISION_ID
}
}