Hay varios principios que debes seguir cuando usas la API de Documentos de Google. Por ejemplo:
- Edita hacia atrás para aumentar la eficiencia
- Planifica la colaboración
- Cómo garantizar la coherencia del estado con el campo
WriteControl
- Ten en cuenta las pestañas
En las siguientes secciones, se explican estos principios.
Edita hacia atrás para aumentar la eficiencia
En una sola llamada al método documents.batchUpdate
, ordena tus solicitudes en orden descendente de la ubicación del índice. Esto elimina la necesidad de calcular los cambios de índice debido a las inserciones y eliminaciones.
Planifica la colaboración
Se espera que cambie el estado del documento. Entre una llamada de método y otra, otros colaboradores pueden actualizar el documento, como se muestra en el siguiente diagrama:
Esto puede generar errores si los índices son incorrectos. Cuando varios usuarios editan un documento con la IU, Documentos de Google se encarga de esto de forma transparente. Sin embargo,
como cliente de la API, tu app debe administrar esto. Incluso si no prevés la colaboración en el documento, es importante programar de forma defensiva y asegurarse de que el estado del documento siga siendo coherente. Para garantizar la coherencia, revisa la sección WriteControl
.
Establece la coherencia del estado con WriteControl
Cuando lees y, luego, actualizas un documento, puedes controlar el comportamiento de cómo
se manejan los cambios competitivos mediante el campo
WriteControl
en el método documents.batchUpdate
. WriteControl
proporciona autoridad sobre cómo se ejecutan las solicitudes de escritura.
Sigue estos pasos para usarlo:
- Obtén el documento con el método
documents.get
y guarda elrevisionId
del recursodocuments
que se muestra. - Redacta tus solicitudes de actualización.
- Incluye un objeto
WriteControl
opcional con una de las siguientes dos opciones:- El campo
requiredRevisionId
se establece en elrevisionId
del documento al que se aplica la solicitud de escritura. Si el documento se modificó desde la solicitud de lectura de la API, no se procesará la solicitud de escritura y se mostrará un error. - El campo
targetRevisionId
se establece en elrevisionId
del documento al que se aplica la solicitud de escritura. Si el documento se modificó desde la solicitud de lectura de la API, los cambios de la solicitud de escritura se aplican en función de los cambios del colaborador. El resultado de la solicitud de escritura incorpora los cambios de la solicitud de escritura y los cambios del colaborador en una nueva revisión del documento. El servidor de Documentos es responsable de combinar el contenido.
- El campo
Para ver un ejemplo de cómo crear una solicitud por lotes con WriteControl
, consulta este ejemplo de solicitud por lotes.
Ten en cuenta las pestañas
Un solo documento puede contener varias pestañas, que requieren un manejo específico en tus solicitudes a la API.
Recuerda lo siguiente:
- Establece el parámetro
includeTabsContent
entrue
en el métododocuments.get
para recuperar el contenido de todas las pestañas de un documento. De forma predeterminada, no se muestra todo el contenido de la pestaña. - Especifica los IDs de las pestañas a las que se aplicará cada
Request
en el métododocuments.batchUpdate
. CadaRequest
incluye una forma de especificar las pestañas a las que se aplicará la actualización. De forma predeterminada, si no se especifica una pestaña, en la mayoría de los casos,Request
se aplicará a la primera pestaña del documento. Consulta la documentación deRequest
para obtener información específica.