使用 Google Docs API 時,請遵守以下幾項原則。包括:
- 反向編輯以提高效率
- 規劃協作活動
- 使用
WriteControl
欄位確保狀態一致性
以下各節將說明這些原則。
反向編輯以提高效率
在呼叫 documents.batchUpdate
方法的單次呼叫中,將要求依索引位置的遞減順序排序。如此一來,就不需要計算因插入和刪除而產生的索引變更。
規劃協作活動
預計要變更文件狀態。在方法呼叫與其他協作者之間,其他協作者可能會更新文件,如下圖所示:
這可能會導致索引錯誤。有多位使用者透過 UI 編輯文件,Google 文件會以公開透明的方式進行處理。不過,做為 API 用戶端,應用程式必須管理這項資訊。即使您預期文件不會參與協作,也務必要製定防禦機制,並確保文件狀態維持一致。要確保一致性的方法,請參閱 WriteControl
一節。
使用 WriteControl 建立狀態一致性
讀取並更新文件時,您可以使用 documents.batchUpdate
方法中的 WriteControl
欄位控制競爭變更的行為。WriteControl
可針對寫入要求執行的方式提供授權。
步驟如下:
- 使用
documents.get
方法取得文件,然後從傳回的documents
資源中儲存revisionId
。 - 編寫更新要求。
- 加入選用的
WriteControl
物件,其中包含以下其中一個選項:requiredRevisionId
欄位會設為要套用寫入要求的文件revisionId
。如果文件在 API 讀取要求後遭到修改,系統就不會處理寫入要求,且會傳回錯誤。targetRevisionId
欄位設為要套用寫入要求的文件的revisionId
。如果在 API 讀取要求後修改文件,則寫入要求變更會套用至協作者變更。寫入要求的結果同時包含寫入要求變更,且協作者對文件的變更會納入文件的新修訂版本。文件伺服器會負責合併內容
如需如何使用 WriteControl
建構批次要求的範例,請參閱這個批次要求範例。