مقدمة
عند استدعاء الطرق تفاصيل المكان (جديد) أو بحث في الجوار (جديد) أو البحث النصي (جديد)، عليك تحديد الحقول التي تريد عرضها في الردّ. لا توجد قائمة تلقائية بالحقول التي يتم عرضها. في حال إغفال هذه القائمة، ستعرض الطرق خطأً.
يمكنك الاطّلاع على القائمة الكاملة بحقول البيانات المتوافقة ورموز التخزين التعريفية المقابلة في حقول بيانات الأماكن (جديد). للحصول على معلومات حول الحقول الخاصة بكل واجهة برمجة تطبيقات، يُرجى الاطّلاع على ما يلي:
- تفاصيل المكان (جديد) FieldMask مَعلمات
- مَعلمات بحث في الجوار (جديد) FieldMask
- مَعلمات FieldMask في البحث النصي (الجديد)
يمكنك تحديد قائمة الحقول من خلال إنشاء قناع حقل الردّ. بعد ذلك، يمكنك تمرير قناع حقل الاستجابة إلى إحدى الطريقتَين باستخدام المَعلمة $fields أو fields، أو باستخدام عنوان HTTP أو gRPC X-Goog-FieldMask.
يُعدّ إخفاء الحقول من أفضل ممارسات التصميم لضمان عدم طلب بيانات غير ضرورية، ما يساعد في تجنُّب وقت المعالجة غير الضروري ورسوم الفوترة.
تحديد قناع حقل الردّ
قناع حقول الاستجابة هو قائمة قيم مفصولة بفاصلة من المسارات، حيث يحدّد كل مسار حقلًا فريدًا في نص الاستجابة. يبدأ المسار من رسالة الرد ذات المستوى الأعلى ويستخدم مسارًا مفصولاً بنقاط إلى الحقل المحدّد.
أنشئ مسار حقل على النحو التالي:
topLevelField[.secondLevelField][.thirdLevelField][...]
يمكنك طلب جميع الحقول باستخدام قناع حقل *.
لمزيد من المعلومات حول كيفية إنشاء أقنعة الحقول، يُرجى الاطّلاع على field_mask.proto.
تحديد حقول الأقنعة التي سيتم استخدامها
في ما يلي كيفية تحديد حقول الإخفاء التي تريد استخدامها:
- اطلب جميع الحقول باستخدام قناع الحقل
*. - اطّلِع على التسلسل الهرمي للحقول في الرد، وحدِّد الحقول التي تريدها.
- أنشئ قناع الحقل باستخدام التسلسل الهرمي للحقول.
تحديد قناع حقل الردّ لكلّ من بحث في الجوار (جديد) والبحث النصي (جديد)
تعرض كلّ من "بحث في الجوار" (إصدار جديد) و"البحث النصي" (إصدار جديد) مصفوفة من عناصر Place في الحقل places من الردّ. في واجهات برمجة التطبيقات هذه، places هو الحقل ذو المستوى الأعلى في الرد.
على سبيل المثال، لعرض عنصر الاستجابة الكامل من Text Search (New):
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: *' \
'https://places.googleapis.com/v1/places:searchText'يكون عنصر الاستجابة الكامل من طلب بحث نصي (جديد) بالتنسيق التالي:
{ "places": [ { "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0", "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0", "types": [ "vegetarian_restaurant", "vegan_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "nationalPhoneNumber": "0433 479 794", "internationalPhoneNumber": "+61 433 479 794", "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Spiced @ Barangaroo", "languageCode": "en" }, ... }, ... ] }
لذلك، عليك تحديد قناع حقل لواجهات برمجة التطبيقات هذه بالتنسيق التالي:
places[.secondLevelField][.thirdLevelField][...]
إذا أردت عرض الحقلَين formattedAddress وdisplayName فقط، اضبط قناع الحقل على:
places.formattedAddress,places.displayName
يؤدي تحديد displayName إلى تضمين الحقلَين text وlanguage الخاصَين بـ displayName. إذا كنت تريد الحقل text فقط، اضبط قناع الحقل على النحو التالي:
places.formattedAddress,places.displayName.text
تحديد قناع حقل الردود لخدمة "تفاصيل المكان (جديدة)"
تعرض خدمة "تفاصيل المكان" (جديدة) عنصر Place واحدًا بالشكل التالي:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
لذلك، يمكنك تحديد قناع حقل لواجهة برمجة التطبيقات هذه من خلال تحديد حقول عنصر Place التي تريد عرضها:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: formattedAddress,displayName" \ https://places.googleapis.com/v1/places/ChIJj61dQgK6j4AR4GeTYWZsKWw
مكالمة gRPC
بالنسبة إلى gRPC، اضبط متغيّرًا يحتوي على قناع حقل الاستجابة. يمكنك بعد ذلك تمرير هذا المتغيّر إلى الطلب.
const ( fieldMask = "places.formattedAddress,places.displayName" )
اعتبارات مسار الحقل
أدرِج فقط الحقول التي تحتاج إليها في الردّ. عرض الحقول التي تحتاج إليها فقط:
- تقليل أوقات المعالجة، ما يؤدي إلى عرض النتائج بوقت استجابة أقل
- يضمن أداءً ثابتًا لوقت الاستجابة إذا أضافت واجهة برمجة التطبيقات المزيد من حقول الردود في المستقبل، وكانت هذه الحقول الجديدة تتطلّب وقتًا إضافيًا للمعالجة. إذا اخترت جميع الحقول، أو إذا اخترت جميع الحقول على المستوى الأعلى، قد ينخفض الأداء عندما يتم تضمين جميع الحقول الجديدة تلقائيًا في ردّك.
- يؤدي إلى حجم رد أصغر، ما يؤدي إلى زيادة معدل نقل البيانات على الشبكة.
- يضمن عدم طلب بيانات غير ضرورية، ما يساعد في تجنُّب وقت المعالجة والرسوم غير الضرورية.