Há vários princípios que você precisa seguir ao usar a API Google Docs. São eles:
- Edite de trás para frente para aumentar a eficiência
- Planejar a colaboração
- Garantir a consistência de estado usando o campo
WriteControl - Considerar as guias
As seções a seguir explicam esses princípios.
Edite de trás para frente para aumentar a eficiência
Em uma única chamada ao método
documents.batchUpdate, ordene suas solicitações em
ordem decrescente de localização do índice. Isso elimina a necessidade de calcular as mudanças no índice devido a inserções e exclusões.
Planejar a colaboração
Aguarde a mudança no estado do documento. Entre uma chamada de método e outra, outros colaboradores podem atualizar o documento, como mostrado no diagrama a seguir:
Isso pode causar erros se os índices estiverem incorretos. Com vários usuários editando um documento usando a interface, o Google Docs cuida disso de forma transparente. No entanto,
como um cliente de API, seu app precisa gerenciar isso. Mesmo que você não preveja
colaboração no documento, é importante programar de forma defensiva e garantir
que o estado do documento permaneça consistente. Para garantir a consistência, consulte a seção WriteControl.
Estabelecer consistência de estado com WriteControl
Ao ler e atualizar um documento, você pode controlar o comportamento de como
as mudanças conflitantes são processadas usando o campo
WriteControl
no método documents.batchUpdate. O WriteControl fornece autoridade sobre como as solicitações de gravação são executadas.
Veja como usar:
- Receba o documento usando o método
documents.gete salve orevisionIddo recursodocumentsretornado. - Crie suas solicitações de atualização.
- Inclua um objeto
WriteControlopcional com uma das duas opções:- O campo
requiredRevisionIdé definido como orevisionIddo documento a que a solicitação de gravação é aplicada. Se o documento tiver sido modificado desde a solicitação de leitura da API, a solicitação de gravação não será processada e vai retornar um erro. - O campo
targetRevisionIdé definido como orevisionIddo documento a que a solicitação de gravação é aplicada. Se o documento tiver sido modificado desde a solicitação de leitura da API, as mudanças da solicitação de gravação serão aplicadas às mudanças do colaborador. O resultado da solicitação de gravação incorpora as mudanças da solicitação e as do colaborador em uma nova revisão do documento. O servidor do Google Docs é responsável por mesclar o conteúdo.
- O campo
Para um exemplo de como criar uma solicitação em lote usando WriteControl, consulte
este exemplo de solicitação em lote.
Considerar as guias
Um único documento pode conter várias guias, que exigem um tratamento específico nas solicitações de API.
Lembre-se do seguinte:
- Defina o parâmetro
includeTabsContentcomotrueno métododocuments.getpara recuperar o conteúdo de todas as guias de um documento. Por padrão, nem todo o conteúdo das guias é retornado. - Especifique os IDs das guias em que cada
Requestserá aplicado no métododocuments.batchUpdate. CadaRequestinclui uma maneira de especificar as guias em que a atualização será aplicada. Por padrão, se uma guia não for especificada, oRequestserá aplicado à primeira guia do documento na maioria dos casos. Consulte a documentação doRequests para mais detalhes.