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

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

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

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

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

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

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

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

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

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