Podczas korzystania z interfejsu Google Docs API należy przestrzegać kilku zasad. Obejmują one:
- Edytowanie od końca w celu zwiększenia wydajności
- Planowanie współpracy
- Zapewnianie spójności stanu za pomocą pola
WriteControl
- Uwzględnianie kart
W sekcjach poniżej znajdziesz wyjaśnienie tych zasad.
Edytowanie od końca w celu zwiększenia wydajności
W ramach jednego wywołania metody documents.batchUpdate
uporządkuj żądania w kolejności malejącej lokalizacji indeksu. Eliminuje to konieczność obliczania zmian indeksu spowodowanych wstawieniami i usunięciami.
Planowanie współpracy
Spodziewaj się zmiany stanu dokumentu. Między wywołaniami jednej metody a wywołaniami innej metody inni współpracownicy mogą aktualizować dokument, jak pokazano na tym diagramie:
Jeśli indeksy są nieprawidłowe, może to prowadzić do błędów. Gdy wielu użytkowników edytuje dokument w interfejsie, Dokumenty Google robią to w sposób przejrzysty. Jednak jako klient interfejsu API Twoja aplikacja musi zarządzać tym procesem. Nawet jeśli nie przewidujesz współpracy nad dokumentem, ważne jest, aby zaprogramować go w sposób defensywny i zapewnić spójność stanu dokumentu. Aby dowiedzieć się, jak zapewnić spójność, zapoznaj się z sekcją WriteControl
.
Zapewnianie spójności stanu za pomocą WriteControl
Podczas odczytywania, a następnie aktualizowania dokumentu możesz kontrolować sposób obsługi konkurencyjnych zmian za pomocą pola WriteControl
w metodzie documents.batchUpdate
. WriteControl
zapewnia kontrolę nad sposobem wykonywania żądań zapisu.
Oto jak go używać:
- Pobierz dokument za pomocą metody
documents.get
i zapiszrevisionId
z zwróconego zasobudocuments
. - Utwórz prośby o aktualizację.
- Dołącz opcjonalny obiekt
WriteControl
z jedną z 2 opcji:- Pole
requiredRevisionId
jest ustawione narevisionId
dokumentu, do którego stosowane jest żądanie zapisu. Jeśli dokument został zmodyfikowany od czasu wysłania żądania odczytu z interfejsu API, żądanie zapisu nie zostanie przetworzone i zwróci błąd. - Pole
targetRevisionId
jest ustawione narevisionId
dokumentu, do którego zastosowano żądanie zapisu. Jeśli dokument został zmodyfikowany od czasu wysłania żądania odczytu z interfejsu API, zmiany z żądania zapisu zostaną zastosowane do zmian wprowadzonych przez współpracownika. Wynik żądania zapisu obejmuje zarówno zmiany wprowadzone w ramach żądania zapisu, jak i zmiany wprowadzone przez współpracownika w nowej wersji dokumentu. Serwer Dokumentów jest odpowiedzialny za scalanie treści.
- Pole
Przykład tworzenia żądania zbiorczego za pomocą WriteControl
znajdziesz w tym przykładzie żądania zbiorczego.
Uwzględnianie kart
Jeden dokument może zawierać wiele kart, które wymagają specjalnego traktowania w żądaniach API.
Oto o czym warto pamiętać:
- Ustaw parametr
includeTabsContent
natrue
w metodziedocuments.get
, aby pobrać zawartość ze wszystkich kart w dokumencie. Domyślnie nie są zwracane wszystkie treści kart. - W metodzie
documents.batchUpdate
określ identyfikatory kart, do których ma być zastosowana każda wartośćRequest
. Każda z nichRequest
umożliwia określenie kart, do których ma być zastosowana aktualizacja. Domyślnie, jeśli karta nie jest określona,Request
w większości przypadków zostanie zastosowany do pierwszej karty w dokumencie. Szczegółowe informacje znajdziesz w dokumentacjiRequest
.