คุณควรปฏิบัติตามหลักการหลายประการเมื่อใช้ Google เอกสาร API ซึ่งได้แก่
- ตัดต่อย้อนหลังเพื่อประสิทธิภาพ
- วางแผนการทำงานร่วมกัน
- ตรวจสอบความสอดคล้องของสถานะโดยใช้ฟิลด์
WriteControl - พิจารณาแท็บ
ส่วนต่อไปนี้จะอธิบายหลักการเหล่านี้
ตัดต่อย้อนหลังเพื่อประสิทธิภาพ
ในการเรียกใช้เมธอด
documents.batchUpdate
ครั้งเดียว ให้จัดเรียงคำขอตามลำดับจากมากไปน้อยของตำแหน่งดัชนี ซึ่งจะช่วยให้ไม่ต้องคำนวณ
การเปลี่ยนแปลงดัชนีเนื่องจากการแทรกและการลบ
วางแผนการทำงานร่วมกัน
คาดว่าสถานะเอกสารจะมีการเปลี่ยนแปลง ระหว่างการเรียกใช้เมธอดหนึ่งกับการเรียกใช้เมธอดอื่น ผู้ร่วมแก้ไขคนอื่นๆ อาจอัปเดตเอกสาร ดังที่แสดงในไดอะแกรมต่อไปนี้
ซึ่งอาจทำให้เกิดข้อผิดพลาดหากดัชนีไม่ถูกต้อง เมื่อผู้ใช้หลายคนแก้ไขเอกสารโดยใช้ UI ของ Google เอกสาร ระบบจะจัดการเรื่องนี้อย่างโปร่งใส อย่างไรก็ตาม
ในฐานะไคลเอ็นต์ API แอปของคุณต้องจัดการเรื่องนี้ แม้ว่าคุณจะไม่คาดหวัง
การทำงานร่วมกันในเอกสาร แต่ก็ควรเขียนโปรแกรมอย่างรอบคอบและตรวจสอบ
ว่าสถานะของเอกสารยังคงสอดคล้องกัน หากต้องการดูวิธีหนึ่งในการรับประกันความสอดคล้อง
โปรดดูส่วน WriteControl
สร้างความสอดคล้องของสถานะด้วย WriteControl
เมื่ออ่านและอัปเดตเอกสาร คุณจะควบคุมลักษณะการทำงานของวิธีจัดการการเปลี่ยนแปลงที่ขัดแย้งกันได้โดยใช้ฟิลด์ WriteControl
ในเมธอด documents.batchUpdate WriteControl มีสิทธิ์
ในการดำเนินการคำขอเขียน
วิธีใช้มีดังนี้
- รับเอกสารโดยใช้วิธี
documents.getและบันทึกrevisionIdจากทรัพยากรdocumentsที่ส่งคืน - เขียนคำขออัปเดต
- รวมออบเจ็กต์
WriteControlที่ไม่บังคับพร้อมตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้- ระบบจะตั้งค่าฟิลด์
requiredRevisionIdเป็นrevisionIdของ เอกสารที่ใช้คำขอเขียน หากมีการแก้ไขเอกสารตั้งแต่ส่งคำขออ่าน API ระบบจะไม่ประมวลผลคำขอเขียนและจะแสดงข้อผิดพลาด - ระบบจะตั้งค่าฟิลด์
targetRevisionIdเป็นrevisionIdของเอกสาร ที่มีการใช้คำขอเขียน หากมีการแก้ไขเอกสารตั้งแต่ส่งคำขออ่าน API ระบบจะใช้การเปลี่ยนแปลงคำขอเขียนกับการเปลี่ยนแปลงของผู้ทำงานร่วมกัน ผลลัพธ์ของคำขอเขียนจะรวมทั้ง การเปลี่ยนแปลงคำขอเขียนและการเปลี่ยนแปลงของผู้ทำงานร่วมกันไว้ในการแก้ไข เอกสารฉบับใหม่ เซิร์ฟเวอร์เอกสารมีหน้าที่ ผสานเนื้อหา
- ระบบจะตั้งค่าฟิลด์
ดูตัวอย่างวิธีสร้างคำขอแบบกลุ่มโดยใช้ WriteControl ได้ที่ตัวอย่างคำขอแบบกลุ่มนี้
พิจารณาแท็บ
เอกสารเดียวอาจมีแท็บหลายแท็บ ซึ่งต้องมีการจัดการเฉพาะในคำขอ API
สิ่งที่ควรทราบมีดังนี้
- ตั้งค่าพารามิเตอร์
includeTabsContentเป็นtrueในเมธอดdocuments.getเพื่อดึงเนื้อหาจากแท็บทั้งหมดในเอกสาร โดยค่าเริ่มต้น ระบบจะไม่แสดงเนื้อหาแท็บทั้งหมด - ระบุรหัสของแท็บที่จะใช้กับ
Requestแต่ละรายการในเมธอดdocuments.batchUpdateแต่ละRequestรายการจะมีวิธีระบุแท็บที่จะใช้การอัปเดต โดยค่าเริ่มต้น หากไม่ได้ระบุแท็บ ระบบจะใช้Requestกับแท็บแรกในเอกสารในกรณีส่วนใหญ่ ดูรายละเอียดได้ที่เอกสารประกอบของRequest