เมื่อเรียกใช้เมธอดรายละเอียดสถานที่ (ใหม่) การค้นหาใกล้เคียง (ใหม่) หรือ การค้นหาข้อความ (ใหม่) คุณต้องระบุช่องที่ต้องการแสดงในการตอบกลับ ไม่มีรายการเริ่มต้นของฟิลด์ที่แสดงผล หากคุณละเว้นรายการนี้ เมธอดจะแสดงข้อผิดพลาด
ดูรายการช่องข้อมูลทั้งหมดที่รองรับและ SKU ที่เกี่ยวข้องได้ในส่วนช่องข้อมูลสถานที่ (ใหม่) ดูข้อมูลเกี่ยวกับช่องเฉพาะของ API แต่ละรายการได้ที่หัวข้อต่อไปนี้
- พารามิเตอร์ FieldMask ของรายละเอียดสถานที่ (ใหม่)
- พารามิเตอร์ FieldMask ของ Search ในพื้นที่ใกล้เคียง (ใหม่)
- พารามิเตอร์ FieldMask ของข้อความค้นหา (ใหม่)
คุณระบุรายการช่องได้โดยสร้างมาสก์ช่องคำตอบ จากนั้นส่งมาสก์ช่องการตอบกลับไปยังเมธอดใดเมธอดหนึ่งโดยใช้พารามิเตอร์ $fields
หรือ fields
หรือใช้ส่วนหัว HTTP หรือ gRPC X-Goog-FieldMask
การมาสก์ฟิลด์เป็นแนวทางปฏิบัติด้านการออกแบบที่ดีเพื่อให้มั่นใจว่าคุณไม่ได้ขอข้อมูลที่ไม่จําเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลและการเรียกเก็บเงินที่ไม่จําเป็น
กำหนดมาสก์ฟิลด์คำตอบ
หน้ากากฟิลด์คำตอบคือรายการเส้นทางที่คั่นด้วยคอมมา โดยที่แต่ละเส้นทางจะระบุฟิลด์ที่ไม่ซ้ำกันในเนื้อหาคำตอบ โดยเส้นทางจะเริ่มต้นจากข้อความตอบกลับระดับบนสุด และใช้เส้นทางที่แยกด้วยจุดไปยังช่องที่ระบุ
สร้างเส้นทางฟิลด์ดังนี้
topLevelField[.secondLevelField][.thirdLevelField][...]
คุณสามารถขอข้อมูลทุกช่องได้โดยใช้มาสก์ฟิลด์ *
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างมาสก์ช่องได้ที่ field_mask.proto
กำหนดว่าจะใช้มาสก์ฟิลด์ใด
วิธีเลือกมาสก์ช่องที่ต้องการใช้มีดังนี้
- ขอข้อมูลทุกช่องโดยใช้มาสก์ช่อง
*
- ดูลําดับชั้นของช่องในการตอบกลับ แล้วเลือกช่องที่ต้องการ
- สร้างมาสก์ฟิลด์โดยใช้ลําดับชั้นของฟิลด์
กําหนดมาสก์ฟิลด์คําตอบสําหรับการค้นหาในพื้นที่ใกล้เคียง (ใหม่) และการค้นหาข้อความ (ใหม่)
การค้นหาในพื้นที่ (ใหม่) และการค้นหาข้อความ (ใหม่) จะแสดงผลอาร์เรย์ของออบเจ็กต์สถานที่ในช่อง places
ของการตอบกลับ สําหรับ API เหล่านี้ places
คือช่องระดับบนสุดของคําตอบ
เช่น หากต้องการดูออบเจ็กต์การตอบกลับที่สมบูรณ์จาก Text Search (ใหม่) ให้ทำดังนี้
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" }, ... }, ... ] }
ดังนั้น คุณจึงต้องระบุมาสก์ฟิลด์สําหรับ API เหล่านี้ในรูปแบบต่อไปนี้
places[.secondLevelField][.thirdLevelField][...]
หากต้องการแสดงเฉพาะช่อง formattedAddress
และ displayName
ให้ตั้งค่ามาสก์ช่องเป็น
places.formattedAddress,places.displayName
การระบุ displayName
จะรวมทั้งช่อง text
และ language
ของ displayName
หากต้องการเฉพาะช่อง text
ให้ตั้งค่าฟิลด์มาสก์เป็น
places.formattedAddress,places.displayName.text
กำหนดมาสก์ฟิลด์คำตอบสำหรับรายละเอียดสถานที่ (ใหม่)
รายละเอียดสถานที่จะแสดงผลออบเจ็กต์สถานที่รายการเดียวในรูปแบบต่อไปนี้
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
ดังนั้น คุณจึงระบุมาสก์ฟิลด์สําหรับ API นี้โดยการระบุฟิลด์ของออบเจ็กต์สถานที่ที่ต้องการแสดงผล
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" )
ข้อควรพิจารณาเกี่ยวกับเส้นทางฟิลด์
ใส่เฉพาะช่องที่คุณต้องการในคำตอบ แสดงเฉพาะช่องที่คุณต้องการ
- ลดเวลาในการประมวลผลเพื่อให้ผลลัพธ์แสดงขึ้นโดยใช้เวลาในการตอบสนองต่ำลง
- ช่วยให้ประสิทธิภาพเวลาในการตอบสนองมีความเสถียรหาก API เพิ่มช่องคำตอบอีกในอนาคต และช่องใหม่เหล่านั้นต้องใช้เวลาในการประมวลผลเพิ่มเติม หากคุณเลือกช่องทั้งหมดหรือเลือกช่องทั้งหมดที่ระดับบนสุด คุณอาจพบว่าประสิทธิภาพลดลงเมื่อระบบรวมช่องใหม่ทั้งหมดไว้ในคำตอบโดยอัตโนมัติ
- ทำให้คำตอบมีขนาดเล็กลง ซึ่งส่งผลให้อัตราการส่งข้อมูลของเครือข่ายสูงขึ้น
- ช่วยให้คุณไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลที่ไม่จำเป็นและการเรียกเก็บเงิน