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

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

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

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

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

v3 มีการปรับปรุงต่อไปนี้จาก 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
  • ตอนนี้เมธอดอัปเดตจะปฏิเสธคำขอที่ระบุฟิลด์ที่เขียนไม่ได้
  • ฟิลด์ exportFormats และ importFormats ของ v2 ในทรัพยากร 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)