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

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

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

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

การปรับปรุงเวอร์ชัน 3

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

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

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

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

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