ไคลเอ็นต์ตัวอย่าง Java

คุณสามารถดาวน์โหลดไคลเอ็นต์ Java Realtime Update API เพื่อช่วยในการเริ่มต้นใช้งานการอัปเดตแบบเรียลไทม์

วิชาบังคับก่อน:

สร้างบัญชีบริการแล้ว ดาวน์โหลดคีย์ส่วนตัว

เริ่มต้น:

  1. ดาวน์โหลดไลบรารีของไคลเอ็นต์ Java แล้วแตกไฟล์เพื่อรับแพ็กเกจ "mapsbooking"
  2. สร้างโปรเจ็กต์ Java ใน IDE, ดาวน์โหลดโค้ดตัวอย่าง InventoryUpdate.java และ BookingNotification.java จากที่เก็บนี้

    git clone https://maps-booking.googlesource.com/java-maps-booking-api-example

    และนําเข้าไปยังโปรเจ็กต์ Java ของคุณในไดเรกทอรี src

  3. ทำสำเนาคีย์ส่วนตัว (ไฟล์ JSON) ไปยังไดเรกทอรี src
  4. เพิ่มไลบรารีของไคลเอ็นต์ Java ลงในทรัพยากร Dependency ของโปรเจ็กต์ (รวมไฟล์ jar ไว้ในไดเรกทอรี mapsbooking และ libs-sources)
  5. ในไฟล์ Java ทั้ง 2 ไฟล์ ให้ทําตาม TODO เพื่อติดตั้งใช้งานให้เสร็จสมบูรณ์

ดูรายละเอียดเพิ่มเติมเกี่ยวกับ REST API ได้ที่นี่

การแก้ปัญหา:

  1. เมื่อพยายามสร้างผู้ขาย/บริการใหม่โดยใช้ merchantId หรือ serviceId ที่มีอยู่ คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้

    409 Conflict
    {
      code : 409,
      errors :
        [{
            domain : global,
            message : Requested entity already exists,
            reason : alreadyExists,
            debugInfo : detail: "[ORIGINAL ERROR] generic::already_exists: ...”\n"
        }],
      message : Requested entity already exists,
      status : ALREADY_EXISTS
    }
  2. เมื่อทำการเรียกใช้เพื่อแทนที่ความพร้อมให้บริการด้วย merchantId หรือ serviceId ที่ไม่ถูกต้อง การเรียกใช้จะไม่แสดงข้อความแสดงข้อผิดพลาด เนื่องจากการเปลี่ยนแปลงช่วงเวลาที่พร้อมให้บริการผ่าน RTU รองรับการดำเนินการที่ไม่เป็นไปตามลําดับ และจึงไม่เชื่อมโยงกับ merchantId หรือ serviceId อย่างไรก็ตาม ช่องในคำขอจะไม่แสดงในเวอร์ชันที่ใช้งานจริงเนื่องจาก merchantId หรือ serviceId ไม่ถูกต้อง หากต้องการให้ช่องแสดงผลได้ โปรดเพิ่มผู้ขายหรือบริการที่ขาดหายไปผ่าน RTU หรือฟีด
  3. ในฟังก์ชันการอัปเดตทั้งหมด พารามิเตอร์ "updateMask" ต้องอยู่ในรูปแบบ FieldMask เพื่อระบุฟิลด์ที่จะอัปเดต API ต้องเปลี่ยนเฉพาะค่าของช่องตามที่ระบุไว้ในมาสก์ และไม่ต้องเปลี่ยนแปลงค่าอื่นๆ หากคุณส่งสตริง updateMask ที่ไม่ถูกต้อง การอัปเดตจะไม่มีผล หากไม่มีมาสก์ฟิลด์ในการอัปเดต การดำเนินการจะมีผลกับทุกช่อง (เหมือนกับมีการระบุมาสก์ฟิลด์ของทุกช่อง) ดังนั้นหากต้องการอัปเดตทุกช่อง ให้ตั้งค่า updateMask เป็นค่าว่าง
  4. ช่องที่มีค่าเป็น 0 จะไม่แสดงในการตอบกลับ