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
- ใน v2 คุณสามารถใช้
ความแตกต่างอื่นๆ
ชื่อฟิลด์และพารามิเตอร์จะแตกต่างกันใน v3 ตัวอย่างเช่น
- พร็อพเพอร์ตี้
nameจะแทนที่titleในทรัพยากรfiles Timeจะเป็นคำต่อท้ายสำหรับฟิลด์วันที่และเวลาทั้งหมดแทนDate- การดำเนินการรายการจะไม่ใช้ฟิลด์
itemsเพื่อเก็บชุดผลลัพธ์ ประเภททรัพยากรจะมีฟิลด์สำหรับผลลัพธ์ (เช่นfilesหรือchanges)