คู่มือเปรียบเทียบ API ไดรฟ์ v2 และ v3

Google ไดรฟ์ API เวอร์ชันล่าสุดคือ v3 ประสิทธิภาพใน v3 ดีกว่าเนื่องจาก การค้นหาจะแสดงเฉพาะฟิลด์ย่อย ใช้เวอร์ชันปัจจุบัน เว้นแต่คุณจะต้องใช้คอลเล็กชัน v2 หากคุณใช้ v2 ให้พิจารณา ย้ายข้อมูลไปยัง v3 หากต้องการย้ายข้อมูล โปรดดูย้ายข้อมูลไปยัง Drive API v3 ดูรายการความแตกต่างของเวอร์ชันทั้งหมดได้ที่เอกสารอ้างอิงการเปรียบเทียบ Drive API v2 และ v3

หากต้องการใช้เวอร์ชัน 2 ต่อไป โปรดดูการแก้ไขคำแนะนำสำหรับ Drive API เวอร์ชัน 2 เพื่อดูวิธีแก้ไขคำสั่งบางอย่างในคำแนะนำเวอร์ชัน 3 สำหรับนักพัฒนาแอปเวอร์ชัน 2

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับปรุง Drive API v3 คุณสามารถดูวิดีโอต่อไปนี้ที่วิศวกรของ Google พูดถึงการออกแบบ API ใหม่

การปรับปรุง V3

เวอร์ชัน 3 มีการปรับปรุงต่อไปนี้จาก API เวอร์ชันก่อนหน้าเพื่อเพิ่มประสิทธิภาพและลดความซับซ้อนของลักษณะการทำงานของ API

  • การค้นหาไฟล์และไดรฟ์ที่แชร์จะไม่แสดงทรัพยากรทั้งหมดโดยค่าเริ่มต้น แต่จะแสดงเฉพาะฟิลด์ที่ใช้กันโดยทั่วไป ดูรายละเอียดเพิ่มเติมเกี่ยวกับ fields ได้ที่วิธี files.list และวิธี drives.list
  • ตอนนี้เกือบทุกเมธอดที่แสดงผลการตอบกลับต้องใช้พารามิเตอร์ fields ดูรายการเมธอดทั้งหมดที่ต้องใช้ fields ได้ที่ เอกสารอ้างอิง Drive API
  • เราได้นำทรัพยากรที่มีความสามารถซ้ำกันออกแล้ว ตัวอย่าง
    • files.list เมธอดมีฟังก์ชันการทำงานเหมือนกับคอลเล็กชัน Children และ Parents จึงถูกนำออกจาก v3
    • ระบบได้นำวิธีการ Realtime.* ออกแล้ว
  • ระบบจะไม่แสดงข้อมูลแอปในการค้นหาโดยค่าเริ่มต้น ใน v2 คุณสามารถตั้งค่าdrive.appdataขอบเขต และจะแสดงข้อมูลแอปพลิเคชันจากเมธอด files.list และเมธอด changes.list แต่จะทำให้ประสิทธิภาพช้าลง ใน v3 คุณตั้งค่าขอบเขต drive.appdata และตั้งค่าพารามิเตอร์การค้นหา spaces=appDataFolder เพื่อขอ ข้อมูลแอปพลิเคชัน
  • การดำเนินการอัปเดตทั้งหมดใช้ PATCH แทน PUT
  • หากต้องการส่งออกเอกสาร Google ให้ใช้วิธี files.export
  • ลักษณะการทำงานของเมธอด changes.list จะแตกต่างกัน ให้ใช้โทเค็นหน้าเว็บแบบทึบแทนการเปลี่ยนรหัส หากต้องการสำรวจการเปลี่ยนแปลง ให้เรียกใช้เมธอด changes.getStartPageToken สำหรับค่าเริ่มต้นก่อน สำหรับการค้นหาครั้งต่อๆ ไป เมธอด changes.list จะแสดงค่า newStartPageToken
  • ตอนนี้เมธอดอัปเดตจะปฏิเสธคำขอที่ระบุช่องที่เขียนไม่ได้
  • ฟิลด์ v2 exportFormats และ importFormats ในแหล่งข้อมูล about คือรายการรูปแบบการนำเข้าหรือส่งออกที่อนุญาต ใน v3 จะเป็นแผนที่ประเภท MIME ของ เป้าหมายที่เป็นไปได้สำหรับการนำเข้าหรือส่งออกที่รองรับทั้งหมด
  • ตอนนี้ชื่อแทน appdata และ appfolder ใน v2 คือ appDataFolder ใน v3
  • ระบบจะนำทรัพยากร properties ออกจาก v3 ทรัพยากร files มีฟิลด์ properties ซึ่งมีคู่คีย์-ค่าจริง ฟิลด์ properties มีพร็อพเพอร์ตี้สาธารณะ และฟิลด์ appProperties มีพร็อพเพอร์ตี้ส่วนตัว จึงไม่จำเป็นต้องมีฟิลด์ระดับการแชร์
  • ฟิลด์ modifiedTime ในทรัพยากร files จะอัปเดตเวลาล่าสุด ที่มีการแก้ไขไฟล์ ใน v2 ช่อง modifiedDate จะเปลี่ยนแปลงได้ เมื่ออัปเดตเท่านั้น หากคุณตั้งค่าช่อง setModifiedDate
  • ฟิลด์ viewedByMeTime ในทรัพยากร files จะไม่อัปเดตโดยอัตโนมัติ
  • หากต้องการนำเข้ารูปแบบ Google เอกสาร ให้ตั้งค่าเป้าหมายที่เหมาะสมmimeType ในเนื้อหาของทรัพยากร ใน v2 คุณตั้งค่า ?convert=true
  • การดำเนินการนำเข้าจะแสดงข้อผิดพลาด 400 หากไม่รองรับรูปแบบ
  • ผู้อ่านและผู้แสดงความคิดเห็นจะดูสิทธิ์ไม่ได้
  • ระบบจะนำชื่อแทน me สำหรับสิทธิ์ออก
  • ฟังก์ชันบางอย่างเคยพร้อมใช้งานเป็นส่วนหนึ่งของทรัพยากรคำขอ แต่ตอนนี้พร้อมใช้งานเป็นพารามิเตอร์คำขอแทน เช่น
    • ใน v2 คุณสามารถใช้ children.delete เพื่อนำไฟล์ย่อยออกจาก โฟลเดอร์หลักได้
    • ใน v3 คุณใช้files.update กับองค์ประกอบย่อยที่มี ?removeParents=parent_id ใน URL

ความแตกต่างอื่นๆ

ฟิลด์และชื่อพารามิเตอร์ใน v3 จะแตกต่างกัน ตัวอย่างเช่น

  • พร็อพเพอร์ตี้ name จะแทนที่ title ในแหล่งข้อมูล files
  • Time เป็นคำต่อท้ายสำหรับช่องวันที่และเวลาทั้งหมดแทน Date
  • การดำเนินการในรายการจะไม่ใช้ฟิลด์ items เพื่อเก็บชุดผลลัพธ์ ประเภททรัพยากรมีช่องสำหรับผลลัพธ์ (เช่น files หรือ changes)