แนวทางปฏิบัติแนะนำเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

มีหลักการหลายอย่างที่คุณควรปฏิบัติตามเมื่อใช้ Google เอกสาร API ซึ่งรวมถึงการใช้งานดังต่อไปนี้

  • แก้ไขย้อนหลังเพื่อประสิทธิภาพ
  • วางแผนการทำงานร่วมกัน
  • ตรวจสอบว่าสถานะสอดคล้องกันโดยใช้ช่อง WriteControl

ส่วนต่อไปนี้จะอธิบายหลักการเหล่านี้

แก้ไขย้อนหลังเพื่อประสิทธิภาพ

ในการเรียกเมธอด documents.batchUpdate ครั้งเดียว ให้เรียงลำดับคำขอตามลำดับจากมากไปน้อยของตำแหน่งดัชนี ซึ่งช่วยให้ไม่ต้องคำนวณการเปลี่ยนแปลงดัชนีเนื่องจากการแทรกและการลบ

วางแผนการทำงานร่วมกัน

โปรดทราบว่าสถานะของเอกสารจะมีการเปลี่ยนแปลง ระหว่างการเรียกใช้เมธอดหนึ่งกับอีกเมธอดหนึ่ง ผู้ทำงานร่วมกันคนอื่นๆ อาจอัปเดตเอกสาร ดังที่ปรากฏในแผนภาพต่อไปนี้

วิธีที่เอกสารจะเปลี่ยนไปมาระหว่างการเรียกใช้เมธอด

ซึ่งอาจทำให้เกิดข้อผิดพลาดหากดัชนีไม่ถูกต้อง การที่ผู้ใช้หลายคนแก้ไขเอกสารโดยใช้ UI จะทำให้ Google เอกสารดูแลเรื่องนี้ได้อย่างโปร่งใส อย่างไรก็ตาม ในฐานะไคลเอ็นต์ API แอปของคุณต้องจัดการส่วนนี้ แม้คุณจะไม่ได้คาดหวังการทำงานร่วมกันในเอกสาร แต่คุณก็ควรตั้งโปรแกรมในเชิงป้องกันและตรวจสอบว่าสถานะของเอกสารยังคงสอดคล้องกัน อ่านหัวข้อ WriteControl เพื่อดูวิธีตรวจสอบความสอดคล้อง

สร้างความสอดคล้องในสถานะด้วย WriteControl

เมื่ออ่านและอัปเดตเอกสารแล้ว คุณจะควบคุมลักษณะการจัดการการเปลี่ยนแปลงในการแข่งขันได้โดยใช้ช่อง WriteControl ในเมธอด documents.batchUpdate WriteControl จะมีอำนาจในการดำเนินการตามคำขอเขียน

โดยทำดังนี้

  1. ดาวน์โหลดเอกสารโดยใช้เมธอด documents.get และบันทึก revisionId จากทรัพยากร documents ที่ส่งคืน
  2. เขียนคำขออัปเดต
  3. ใส่ออบเจ็กต์ WriteControl ที่ไม่บังคับด้วย 1 ใน 2 ตัวเลือกต่อไปนี้
    1. ช่อง requiredRevisionId ได้รับการตั้งค่าเป็น revisionId ของเอกสารที่จะใช้คำขอเขียน หากมีการแก้ไขเอกสารตั้งแต่มีการขออ่าน API ระบบจะไม่ประมวลผลคำขอเขียนและแสดงผลข้อผิดพลาด
    2. ฟิลด์ targetRevisionId ได้รับการตั้งค่าเป็น revisionId ของเอกสารที่จะใช้คำขอเขียน หากมีการแก้ไขเอกสารตั้งแต่คำขออ่าน API การเปลี่ยนแปลงคำขอเขียนจะมีผลกับการเปลี่ยนแปลงของผู้ทำงานร่วมกัน ผลลัพธ์ของคำขอเขียนจะรวมทั้งการเปลี่ยนแปลงคำขอเขียนและการเปลี่ยนแปลงของผู้ทำงานร่วมกันเป็นการแก้ไขใหม่ของเอกสาร เซิร์ฟเวอร์เอกสารมีหน้าที่รวมเนื้อหา

ดูตัวอย่างวิธีสร้างคำขอแบบกลุ่มโดยใช้ WriteControl ได้ที่ตัวอย่างคำขอแบบกลุ่ม