فیلد ماسک راهی برای تماسگیرندگان API برای فهرست کردن فیلدهایی است که درخواست باید برگرداند یا بهروزرسانی کند. استفاده از FieldMask به API اجازه می دهد تا از کارهای غیر ضروری جلوگیری کند و عملکرد را بهبود بخشد. یک فیلد ماسک برای هر دو روش خواندن و بهروزرسانی در Google Docs API استفاده میشود.
با ماسک میدانی بخوانید
اسناد ممکن است بزرگ باشند، و اغلب شما نیازی به هر بخشی از منبع Document
ندارید که با درخواست خواندن بازگردانده شود. میتوانید با استفاده از پارامتر URL fields
، آنچه را که در پاسخ API Docs برگردانده میشود، محدود کنید. برای بهترین عملکرد، فقط فیلدهایی را که در پاسخ نیاز دارید به صراحت فهرست کنید .
فرمت پارامتر فیلدها مانند رمزگذاری JSON یک FieldMask است. به طور خلاصه، چندین فیلد مختلف با کاما و زیر فیلدها با نقطه جدا می شوند. نام فیلدها را می توان در camelCase یا جداگانه_by_underscores مشخص کرد. برای راحتی، چندین زیرفیلد از یک نوع را می توان در داخل پرانتز فهرست کرد.
مثال درخواست documents.get
زیر از یک ماسک فیلد از title,tabs(documentTab(body.content(paragraph))),revisionId
برای واکشی title
سند، Paragraph
یک Body
(از همه زبانه ها) و revisionId
سند استفاده می کند. در یک سند:
GET https://docs.googleapis.com/v1/documents/documentId?fields=title,tabs(documentTab(body.content(paragraph))),revisionId
پاسخ به این فراخوانی متد یک شی Document
است که شامل اجزای درخواست شده در فیلد ماسک است:
{ "title": "TITLE
", "revisionId": "REVISION_ID
", "tabs": [ { "documentTab": { "body": { "content": [ {}, { "paragraph": { "elements": [ { "startIndex": 1, "endIndex": 59, "textRun": { "content": "CONTENT
", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } } ] } } } ] }
به روز رسانی با ماسک فیلد
گاهی اوقات شما نیاز دارید که فقط فیلدهای خاصی را در یک شی به روز کنید در حالی که فیلدهای دیگر را بدون تغییر رها کنید. درخواستهای بهروزرسانی در یک عملیات documents.batchUpdate
از ماسکهای فیلد استفاده میکند تا به API بگوید کدام فیلدها در حال تغییر هستند. درخواست بهروزرسانی، فیلدیهایی را که در فیلد ماسک مشخص نشدهاند نادیده میگیرد و مقادیر فعلیشان را باقی میگذارد.
همچنین میتوانید یک فیلد را با مشخص نکردن آن در پیام بهروزرسانی شده، اما افزودن فیلد به ماسک، لغو تنظیم کنید. این هر مقداری را که فیلد قبلاً داشته است پاک می کند.
سینتکس ماسک های فیلد به روز رسانی مانند ماسک های فیلد خواندنی است.
مثال زیر از UpdateTextStyleRequest
استفاده می کند تا کلمات "Google Docs API" در سند را در range
5 تا 20 پررنگ کند:
POST https://docs.googleapis.com/v1/documents/documentId:batchUpdate
{ "title": "TITLE
", "revisionId": "REVISION_ID
", "suggestionsViewMode": "SUGGESTIONS_INLINE", "documentId": "DOCUMENT_ID
", "tabs": [ { "documentTab": { "body": { "content": [ { "endIndex": 1, "sectionBreak": { "sectionStyle": { "columnSeparatorStyle": "NONE", "contentDirection": "LEFT_TO_RIGHT", "sectionType": "CONTINUOUS" } } }, { "startIndex": 1, "endIndex": 59, "paragraph": { "elements": [ { "startIndex": 1, "endIndex": 5, "textRun": { "content": "CONTENT
", "textStyle": {} } }, { "startIndex": 5, "endIndex": 20, "textRun": { "content": "CONTENT
", "textStyle": { "bold": true } } }, { "startIndex": 20, "endIndex": 59, "textRun": { "content": "CONTENT
", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } } ] }, { ... // style details }, } } ], }