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

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

หากต้องการใช้ v2 ต่อไป โปรดดูการแก้ไขคู่มือเกี่ยวกับ 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
  • ตอนนี้เมธอดอัปเดตจะปฏิเสธคำขอที่ระบุช่องที่เขียนไม่ได้
  • ช่อง exportFormats และ importFormats ของ v2 ในทรัพยากร about คือรายการรูปแบบการนําเข้าหรือส่งออกที่อนุญาต ในเวอร์ชัน 3 ไฟล์เหล่านี้เป็นการแมปประเภท 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)