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

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

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

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

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

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

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

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

body = ... & requests & ...

...batchUpdate(body)

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

פעולות של עדכון באצווה

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

אובייקט הוספה UPDATE / REPLACE מחיקה
טקסט 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