وقتی متد ComputeRoutes() را فراخوانی میکنید، باید مشخص کنید که میخواهید کدام فیلدها در پاسخ بازگردانده شوند. این کار را با استفاده از یک ماسک فیلد پاسخ انجام میدهید که آن را با پارامتر URL $fields یا fields ارائه میدهید، یا با استفاده از هدر HTTP/gRPC X-Goog-FieldMask . برای اطلاعات بیشتر، به پارامترهای سیستم مراجعه کنید.
ماسک میدانی
مقدار ماسک فیلد، فهرستی از مسیرهای فیلد است که با کاما از هم جدا شدهاند. هر مسیر فیلد، فهرستی از نامهای فیلد است که با نقطه از هم جدا شدهاند و سلسله مراتب پیام را نشان میدهند. نام فیلد یا کلید شیء JSON است یا نام برچسب فیلد protobuf. مسیر فیلد از نوع پیام پاسخ سطح بالا شروع میشود و به صورت اختیاری با یک یا چند نقطه و سپس سطح بعدی نام فیلد دنبال میشود. به طور کلی، مسیرهای فیلد به روش زیر ساخته میشوند:
topLevelField[.secondLevelField][.thirdLevelField][...]
یک ماسک فیلد حالت خاص، یک علامت اختصاری "*" است که تمام فیلدهای سطح ریشه را انتخاب میکند.
مثالها
مثال زیر نحوه تنظیم ماسک فیلد برای متد ComputeRoutes() را نشان میدهد.
مثال ۱
ماسک فیلد تمام فیلدهای موجود (برای بررسی دستی).
X-Goog-FieldMask: *
مثال ۲
ماسک فیلد مدت زمان، مسافت و چندخطی در سطح مسیر (یک نمونه تنظیمات تولید).
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline
ما استفاده از ماسک فیلد پاسخ با کاراکترهای wildcard (*) یا مشخص کردن ماسک فیلد در سطح بالا (مسیرها) در محیط عملیاتی را توصیه نمیکنیم. فقط فیلدهایی را که نیاز دارید انتخاب کنید:
به سرور ما اجازه میدهد چرخههای پردازش را ذخیره کند، که به ما امکان میدهد نتایج شما را با تأخیر کمتری برگردانیم.
عملکرد پایدار در زمان تأخیر را تضمین میکند. ممکن است در آینده فیلدهای پاسخ بیشتری اضافه کنیم و این فیلدهای جدید ممکن است به زمان محاسبه بیشتری نیاز داشته باشند. اگر همه فیلدها را انتخاب کنید، یا اگر همه فیلدها را در سطح بالا انتخاب کنید، ممکن است با افت عملکرد مواجه شوید زیرا هر فیلد جدیدی که اضافه کنیم به طور خودکار در پاسخ شما گنجانده میشود.
منجر به اندازه پاسخ کوچکتر میشود که به معنای افزایش توان عملیاتی شبکه است.
برای اطلاعات بیشتر در مورد نحوه ساخت مسیرهای فیلد، به field_mask.proto مراجعه کنید.