วัตถุประสงค์
ในฐานะนักพัฒนาซอฟต์แวร์ คุณมักทำงานกับชุดข้อมูลที่มีที่อยู่ของลูกค้าซึ่งอาจไม่ได้มีคุณภาพดี คุณต้องตรวจสอบว่าที่อยู่ถูกต้องสำหรับกรณีการใช้งานต่างๆ ตั้งแต่การยืนยันรหัสลูกค้า การนำส่ง และอื่นๆ
Address Validation API เป็นผลิตภัณฑ์จาก Google Maps Platform ที่คุณสามารถใช้เพื่อตรวจสอบที่อยู่ แต่ระบบจะประมวลผลที่อยู่ทีละ 1 รายการเท่านั้น ในเอกสารนี้ เราจะมาดูวิธีใช้การตรวจสอบที่อยู่ปริมาณมากในสถานการณ์ต่างๆ ตั้งแต่การทดสอบ API ไปจนถึงการตรวจสอบที่อยู่แบบครั้งเดียวและตามรอบ
Use Case
ตอนนี้เราจะเข้าใจกรณีการใช้งานที่การตรวจสอบที่อยู่ปริมาณมากมีประโยชน์
การทดสอบ
คุณมักต้องการทดสอบ Address Validation API โดยการเรียกใช้ที่อยู่หลายพันรายการ คุณอาจมีที่อยู่ในไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาคและต้องการตรวจสอบคุณภาพของที่อยู่
การตรวจสอบที่อยู่แบบครั้งเดียว
ขณะเริ่มต้นใช้งาน Address Validation API คุณต้องการตรวจสอบฐานข้อมูลที่อยู่ที่มีอยู่กับฐานข้อมูลผู้ใช้
การตรวจสอบที่อยู่ที่เกิดซ้ำ
มีบางสถานการณ์ที่จำเป็นต้องตรวจสอบที่อยู่เป็นประจำ เช่น
- คุณอาจได้กำหนดเวลางานเพื่อตรวจสอบที่อยู่ในรายละเอียดของที่อยู่ในแต่ละวัน เช่น การลงชื่อสมัครใช้ของลูกค้า รายละเอียดคำสั่งซื้อ กำหนดเวลาการจัดส่ง
- คุณอาจได้รับดัมพ์ข้อมูลที่มีที่อยู่จากแผนกต่างๆ เช่น จากฝ่ายขายไปจนถึงฝ่ายการตลาด แผนกใหม่ที่ได้รับที่อยู่มักจะต้องการตรวจสอบความถูกต้องของที่อยู่ก่อนใช้งาน
- คุณอาจรวบรวมที่อยู่ในแบบสำรวจหรือโปรโมชันต่างๆ และทำการอัปเดตในระบบออนไลน์ในภายหลัง คุณต้องการตรวจสอบว่าที่อยู่ถูกต้อง ขณะป้อนที่อยู่ลงในระบบ
ข้อมูลเจาะลึกทางเทคนิค
สำหรับวัตถุประสงค์ของเอกสารนี้ เราถือว่า:
- คุณกำลังเรียกใช้ Address Validation API ด้วยที่อยู่จากฐานข้อมูลลูกค้า (เช่น ฐานข้อมูลที่มีรายละเอียดของลูกค้า)
- คุณแคชแฟล็กความถูกต้องของอีเมลแต่ละรายการในฐานข้อมูลได้
- ระบบจะดึงข้อมูลแฟล็กความถูกต้องจาก Address Validation API เมื่อลูกค้าแต่ละรายเข้าสู่ระบบ
แคชสำหรับการใช้งานจริง
เมื่อใช้ Address Validation API คุณมักต้องการแคชการตอบกลับบางส่วนจากการเรียก API แม้ว่าข้อกำหนดในการให้บริการจะจำกัดข้อมูลที่แคชได้ แต่ข้อมูลที่แคชได้จาก Address Validation API จะต้องแคชไว้กับบัญชีผู้ใช้ด้วย ซึ่งหมายความว่าในฐานข้อมูล ที่อยู่หรือข้อมูลเมตาของที่อยู่ต้องมีการแคชไว้กับที่อยู่อีเมลหรือรหัสหลักอื่นๆ ของผู้ใช้
สำหรับกรณีการใช้งานการตรวจสอบที่อยู่ปริมาณมาก การแคชข้อมูลต้องเป็นไปตามข้อกำหนดเฉพาะบริการของ API การตรวจสอบที่อยู่ ตามที่ระบุไว้ในส่วนที่ 11.3 จากข้อมูลนี้ คุณจะสามารถตัดสินได้ว่าที่อยู่ของผู้ใช้อาจไม่ถูกต้องหรือไม่ ซึ่งในกรณีนี้ระบบจะแจ้งให้ผู้ใช้ทราบที่อยู่ที่แก้ไขแล้วในการโต้ตอบกับแอปพลิเคชันของคุณในครั้งถัดไป
- ข้อมูลจากออบเจ็กต์ AddressComponent
confirmationLevel
inferred
spellCorrected
replaced
unexpected
หากคุณต้องการแคชข้อมูลเกี่ยวกับที่อยู่จริง ต้องมีการแคชข้อมูลนั้นเมื่อได้รับความยินยอมจากผู้ใช้เท่านั้น วิธีนี้ช่วยให้ผู้ใช้ทราบเป็นอย่างดีถึงเหตุผลที่บริการหนึ่งๆ จัดเก็บที่อยู่ของตนไว้ และยอมรับเงื่อนไขการแชร์ที่อยู่ของตน
ตัวอย่างความยินยอมของผู้ใช้คือ การโต้ตอบโดยตรงกับแบบฟอร์มที่อยู่อีคอมเมิร์ซในหน้าชำระเงิน เราเข้าใจว่าคุณจะแคชและประมวลผลที่อยู่เพื่อวัตถุประสงค์ในการจัดส่งพัสดุ
คุณสามารถแคช formattedAddress
และคอมโพเนนต์หลักอื่นๆ จากการตอบสนองได้เมื่อได้รับความยินยอมจากผู้ใช้ อย่างไรก็ตาม ในสถานการณ์ที่ไม่มีส่วนหัว ผู้ใช้จะให้คำยินยอมไม่ได้ เนื่องจากการตรวจสอบที่อยู่จะเกิดขึ้นจากแบ็กเอนด์ ดังนั้น คุณจึงแคชข้อมูลได้น้อยมากในสถานการณ์ที่ไม่มีส่วนหัวนี้
ทำความเข้าใจคำตอบ
หากการตอบกลับ Address Validation API มีเครื่องหมายต่อไปนี้ คุณจะมั่นใจได้ว่าที่อยู่ที่ป้อนมีคุณภาพการนำส่งได้
- เครื่องหมาย
addressComplete
ในออบเจ็กต์ Verdict คือtrue
validationGranularity
ในออบเจ็กต์คำตัดสิน คือPREMISE
หรือSUB_PREMISE
- ไม่มี AddressComponent
ที่ทำเครื่องหมายว่า
Inferred
(หมายเหตุ: inferred=true
อาจเกิดขึ้นเมื่อaddressComplete=true
)spellCorrected
replaced
unexpected
และ
confirmationLevel
: ระดับการยืนยันใน AddressComponent ตั้งค่าเป็นCONFIRMED
หรือUNCONFIRMED_BUT_PLAUSIBLE
หากการตอบกลับของ API ไม่มีเครื่องหมายข้างต้น ที่อยู่อินพุตอาจมีคุณภาพต่ำ และคุณสามารถแคชแฟล็กในฐานข้อมูลเพื่อให้แสดงได้ สถานะที่ใช้แคชจะบ่งบอกว่าที่อยู่โดยรวมมีคุณภาพต่ำ ส่วนการแจ้งที่ละเอียดยิ่งขึ้น เช่น การแก้ไขการสะกดคำ จะบ่งบอกประเภทปัญหาด้านคุณภาพของที่อยู่ที่เฉพาะเจาะจง ในครั้งต่อไปที่ลูกค้าโต้ตอบกับที่อยู่ที่ได้รับแจ้งว่ามีคุณภาพต่ำ คุณสามารถเรียกใช้ Address Validation API ด้วยที่อยู่ที่มีอยู่ Address Validation API จะแสดงที่อยู่ที่แก้ไขแล้ว ซึ่งคุณสามารถแสดงโดยใช้ข้อความแจ้งของ UI ได้ เมื่อลูกค้ายอมรับที่อยู่ที่จัดรูปแบบแล้ว คุณจะแคชข้อมูลต่อไปนี้จากคำตอบได้
formattedAddress
postalAddress
addressComponent componentNames
หรือUspsData standardizedAddress
ใช้การตรวจสอบที่อยู่แบบไม่มีส่วนหัว
อ้างอิงจากการสนทนาข้างต้น:
- มักจำเป็นต้องแคชคำตอบบางส่วนจาก Address Validation API ด้วยเหตุผลทางธุรกิจ
- แต่ข้อกำหนดในการให้บริการใน Google Maps Platform จะจำกัดข้อมูลที่สามารถแคชได้
ในส่วนต่อไป เราจะกล่าวถึงกระบวนการ 2 ขั้นตอนเกี่ยวกับวิธีปฏิบัติตามข้อกำหนดในการให้บริการและการตรวจสอบที่อยู่ปริมาณมาก
ขั้นตอนที่ 1:
ในขั้นตอนแรก เราจะศึกษาวิธีติดตั้งใช้งานสคริปต์การตรวจสอบที่อยู่ปริมาณมากจากไปป์ไลน์ข้อมูลที่มีอยู่ กระบวนการนี้จะอนุญาตให้คุณจัดเก็บช่องที่ต้องการจากการตอบกลับ Address Validation API ในลักษณะที่เป็นไปตามข้อกำหนดในการให้บริการ
แผนภาพ A: แผนภาพต่อไปนี้แสดงวิธีเพิ่มประสิทธิภาพไปป์ไลน์ข้อมูลด้วยตรรกะการตรวจสอบที่อยู่ปริมาณมาก
คุณแคชข้อมูลต่อไปนี้จาก addressComponent
ได้ตามข้อกำหนดในการให้บริการ
confirmationLevel
inferred
spellCorrected
replaced
unexpected
ดังนั้นในขั้นตอนการติดตั้งใช้งานนี้ เราจะแคชช่องที่กล่าวถึงข้างต้นไว้กับ UserID
ดูข้อมูลเพิ่มเติมได้ที่โครงสร้างข้อมูลจริง
ขั้นตอนที่ 2:
ในขั้นตอนที่ 1 เรารวบรวมความคิดเห็นว่าที่อยู่บางรายการในชุดข้อมูลอินพุตอาจมีคุณภาพต่ำ ในขั้นตอนต่อไป เราจะนำที่อยู่ที่มีการแจ้งเหล่านี้มาแสดงแก่ผู้ใช้และรับความยินยอมให้แก้ไขที่อยู่ที่จัดเก็บไว้
แผนภาพ ข: แผนภาพนี้แสดงให้เห็นว่าการผสานรวมขั้นตอนความยินยอมของผู้ใช้จากต้นทางถึงปลายทางมีลักษณะอย่างไร
- เมื่อผู้ใช้เข้าสู่ระบบ ก่อนอื่นให้ตรวจสอบว่าคุณได้แคชแฟล็กการตรวจสอบความถูกต้องใดๆ ไว้ในระบบหรือไม่
- หากมีแฟล็ก คุณควรแสดง UI แก่ผู้ใช้เพื่อแก้ไขและอัปเดตที่อยู่
- คุณสามารถเรียกใช้ Address Validation API อีกครั้งด้วยที่อยู่ที่อัปเดตหรือแคช และแสดงที่อยู่ที่แก้ไขแล้วแก่ผู้ใช้เพื่อยืนยัน
- หากที่อยู่มีคุณภาพดี Address Validation API จะแสดงผล
formattedAddress
- คุณอาจแสดงที่อยู่ดังกล่าวให้ผู้ใช้ทราบหากมีการแก้ไข หรือยอมรับโดยไม่มีการแก้ไขใดๆ
- เมื่อผู้ใช้ยอมรับแล้ว คุณจะแคช
formattedAddress
ในฐานข้อมูลได้
บทสรุป
การตรวจสอบที่อยู่ปริมาณมากเป็นกรณีการใช้งานทั่วไปที่คุณอาจพบในแอปพลิเคชันจำนวนมาก เอกสารนี้พยายามสาธิตสถานการณ์บางอย่างและรูปแบบการออกแบบ เกี่ยวกับวิธีนำโซลูชันดังกล่าวไปใช้ตามข้อกำหนดในการให้บริการของแพลตฟอร์ม Google Maps
เรายังได้เขียนข้อมูลอ้างอิงสำหรับการใช้การตรวจสอบที่อยู่ปริมาณมากในไลบรารีโอเพนซอร์สบน GitHub ด้วย ลองเข้าไปดูเพื่อเริ่มสร้าง ด้วยการตรวจสอบที่อยู่ปริมาณมากอย่างรวดเร็ว และอ่านบทความเกี่ยวกับ รูปแบบการออกแบบของวิธีใช้ไลบรารีในสถานการณ์ต่างๆ
ขั้นตอนถัดไป
ดาวน์โหลดปรับปรุงขั้นตอนการชำระเงิน การนำส่ง และการดำเนินการด้วยที่อยู่ที่เชื่อถือได้ เอกสารประกอบ และดูการสัมมนาผ่านเว็บสำหรับการปรับปรุงการชำระเงิน การนำส่ง และการดำเนินการด้วยการตรวจสอบที่อยู่
แนะนำให้อ่านเพิ่มเติม:
- การใช้การตรวจสอบที่อยู่ปริมาณมาก
- ไลบรารี Python ใน GitHub
- ดูการสาธิตการตรวจสอบที่อยู่
ผู้ร่วมให้ข้อมูล
Google เป็นผู้ดูแลบทความนี้ ผู้เขียนต่อไปนี้เป็นคนเขียน
ผู้เขียนหลัก:
Henrik Valve | วิศวกรโซลูชัน
Thomas Anglaret | วิศวกรโซลูชัน
Sarthak Ganguly | วิศวกร
โซลูชัน