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