בקשות ותגובות

במדריך הזה נסביר על השיטות העיקריות של בקשות ותגובות שמרכיבות את Google Docs API, ואיך אפשר לעדכן מסמך באצוות.

אפשר להפעיל את Google Docs API באמצעות בקשת HTTP, או באמצעות הפעלת שיטה בספריית לקוח ספציפית לשפה. הן שוות בערך.

‫Google Docs API מחזיר תגובת HTTP, שבדרך כלל כוללת את התוצאה של הפעלת הבקשה. כשמשתמשים בספריית לקוח כדי לשלוח בקשות, התשובות מוחזרות באופן ספציפי לשפה.

שיטות בקשה

‫Docs API תומך בשיטות הבאות:

  • documents.create: יצירת מסמך ריק ב-Google Docs.

  • documents.get: מחזירה מופע מלא של המסמך שצוין. אפשר לנתח את ה-JSON שמוחזר כדי לחלץ את תוכן המסמך, העיצוב ותכונות אחרות.

  • documents.batchUpdate: שליחת רשימה של בקשות עריכה להחלה אטומית על המסמך, והחזרת רשימה של תוצאות.

השיטות documents.get ו-documents.batchUpdate דורשות documentId כפרמטר כדי לציין את מסמך היעד. השיטה documents.create מחזירה מופע של המסמך שנוצר, שממנו אפשר לקרוא את documentId. מידע נוסף על documentId זמין במאמר מזהה מסמך.

שימו לב שאי אפשר להשתמש בשיטה documents.get כדי לאחזר מסמכים שפורסמו. אחרי שמפרסמים מסמכים ציבוריים, הם מקבלים פורמט שונה של כתובת URL. ניסיונות להשתמש בכתובת ה-URL החדשה documentId עם השיטה documents.get מחזירים תגובה עם קוד סטטוס HTTP 404. אין דרכים לאחזר את documentId המקורי מכתובת ה-URL שפורסמה. כדי לעקוף את הבעיה, אפשר להשתמש ב-Drive API כדי להעתיק את המסמך שפורסם למסמך משותף, ואז לגשת לקובץ הזה במקום. מידע נוסף זמין במאמר בנושא הגדרת קבצים כגלויים לכולם ב-Google Docs‏,‏ Sheets‏,‏ Slides ו-Forms.

עדכונים באצווה

ה-method‏ documents.batchUpdate מקבלת רשימה של אובייקטים מסוג request, שכל אחד מהם מציין בקשה יחידה לביצוע. לדוגמה, מעצבים פסקה ואז מוסיפים תמונה בתוך השורה. כל בקשה עוברת אימות לפני שהיא מוחלת, והבקשות מעובדות לפי הסדר שבו הן מופיעות בבקשה באצווה.

כל הבקשות בעדכון אצווה מוחלות באופן אטומי. כלומר, אם בקשה כלשהי לא תקינה, העדכון כולו לא יצליח ואף אחד מהשינויים (שיכול להיות שהם תלויים זה בזה) לא יחול.

חלק מהשיטות של documents.batchUpdate מספקות תשובות עם מידע על הבקשות שהוגשו. השיטות האלה מחזירות response body שמכיל רשימה של אובייקטים מסוג response. בבקשות אחרות לא צריך להחזיר מידע, והתשובה תהיה ריקה. האובייקטים ברשימת התשובות תופסים את אותו סדר אינדקס כמו הבקשה המתאימה.

דפוס נפוץ ליצירת בקשות באצווה נראה כך:

requests = []
requests.append(first request)
requests.append(second request)
...

body = ... & requests & ...

...batchUpdate(body)

בשיטות מומלצות לשליחת בקשות מקובצות יש פרטים מלאים על אופן קיבוץ הקריאות ל-Docs API, ובמסמכי העיון של documents.batchUpdate יש מידע על סוגי הבקשות והתגובות.

פעולות של עדכון בכמות גדולה

יש סוגים שונים של בקשות לעדכון אצווה. לפניכם פירוט של סוגי הבקשות, שמחולקות לקטגוריות שונות.

אובייקט הוספה / הכנסה עדכון / החלפה מחיקה
טקסט InsertTextRequest ReplaceAllTextRequest
סגנונות CreateParagraphBulletsRequest UpdateTextStyleRequest
UpdateParagraphStyleRequest
UpdateTableCellStyleRequest
UpdateTableRowStyleRequest
UpdateDocumentStyleRequest
UpdateSectionStyleRequest
DeleteParagraphBulletsRequest
טווחים בעלי שם CreateNamedRangeRequest ReplaceNamedRangeContentRequest DeleteNamedRangeRequest
DeleteContentRangeRequest
תמונות InsertInlineImageRequest ReplaceImageRequest
טבלאות InsertTableRequest
InsertTableRowRequest
InsertTableColumnRequest
UpdateTableColumnPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
PinTableHeaderRowsRequest
DeleteTableRowRequest
DeleteTableColumnRequest
אובייקטים של דפים (כולל כותרות עליונות וכותרות תחתונות) InsertPageBreakRequest
CreateHeaderRequest
CreateFooterRequest
CreateFootnoteRequest
InsertSectionBreakRequest
DeletePositionedObjectRequest
DeleteHeaderRequest
DeleteFooterRequest