การใช้งาน: คำตอบบางส่วน

ตัวอย่างต่อไปนี้แสดงวิธีเรียกข้อมูลการตอบกลับบางส่วนของ API ใน YouTube Data API (v3)

หมายเหตุ: คู่มือเริ่มต้นใช้งานของ API มีรายละเอียดเพิ่มเติมเกี่ยวกับคำขอและการตอบกลับบางส่วน

API เวอร์ชัน 3 อนุญาตและกำหนดให้ดึงข้อมูลบางส่วนเพื่อให้แอปพลิเคชันหลีกเลี่ยงการโอน การแยกวิเคราะห์ และการจัดเก็บข้อมูลที่ไม่จำเป็นต้องใช้ แนวทางนี้ยังช่วยให้ API ใช้ทรัพยากรเครือข่าย, CPU และหน่วยความจําได้อย่างมีประสิทธิภาพมากขึ้นด้วย

API รองรับพารามิเตอร์คําขอ 2 รายการ ได้แก่ part และ fields ซึ่งช่วยให้คุณระบุพร็อพเพอร์ตี้ทรัพยากรที่ควรรวมอยู่ในคําตอบของ API ได้ พารามิเตอร์ part ยังระบุพร็อพเพอร์ตี้ที่ควรตั้งค่าตามคําขอ API ที่แทรกหรืออัปเดตทรัพยากรด้วย

โปรดทราบว่าหากคำขออัปเดตไม่ได้ระบุค่าสำหรับพร็อพเพอร์ตี้ทรัพยากรที่มีค่าก่อนหน้านี้ ระบบจะลบค่าที่มีอยู่หากเงื่อนไขต่อไปนี้เป็นจริง

  • คำขอสามารถแก้ไขค่าของพร็อพเพอร์ตี้ได้ (เช่น เมื่ออัปเดตทรัพยากร video คุณจะอัปเดตค่าของพร็อพเพอร์ตี้ snippet.description ได้ แต่จะอัปเดตค่าของออบเจ็กต์ snippet.thumbnails ไม่ได้

  • ค่าพารามิเตอร์ part ของคําขอจะระบุส่วนของทรัพยากรที่มีพร็อพเพอร์ตี้

ตัวอย่าง

ตัวอย่างเช่น สมมติว่าคุณต้องการอัปเดตแหล่งข้อมูล video ที่แสดงด้านล่าง (โปรดทราบว่าพร็อพเพอร์ตี้ทั้งหมดที่แสดงด้านล่างอัปเดตได้ผ่าน API และเราได้ละเว้นพร็อพเพอร์ตี้ทรัพยากรที่ไม่เกี่ยวข้องกับตัวอย่างนี้)

{
  "snippet": {
    "title": "Old video title",
    "description": "Old video description",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  },
  "status": {
    "privacyStatus": "private",
    "publishAt": "2014-09-01T12:00:00.0Z",
    "license": "youtube",
    "embeddable": True,
    "publicStatsViewable": True
  }
}

คุณเรียกใช้เมธอด videos.update และตั้งค่าพารามิเตอร์ part เป็น snippet เนื้อความของคำขอ API มีทรัพยากรต่อไปนี้

{
  "snippet": {
    "title": "New video title",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  }
}

คำขอนี้จะอัปเดตชื่อวิดีโอ ลบคำอธิบาย และจะไม่เปลี่ยนแท็กหรือรหัสหมวดหมู่ของวิดีโอ ระบบจะลบคำอธิบายของวิดีโอเนื่องจากคำขอไม่ได้ระบุค่าสำหรับพร็อพเพอร์ตี้ snippet.description

พร็อพเพอร์ตี้ในออบเจ็กต์ status จะไม่ได้รับผลกระทบเลย เนื่องจากค่าพารามิเตอร์ part ไม่ได้รวม status ไว้เป็นหนึ่งในส่วนที่คำขอจะอัปเดต อันที่จริง หากเนื้อหาของคำขอ API มีออบเจ็กต์ status อยู่ด้วย API จะแสดงผลการตอบกลับ HTTP 400 (Bad Request) เนื่องจากมีส่วนที่ไม่คาดคิดรวมอยู่ในเนื้อหาคำขอ