التنفيذ: الردود الجزئية

توضح الأمثلة التالية كيفية استرداد استجابات واجهة برمجة التطبيقات الجزئية في YouTube Data API (الإصدار 3).

ملاحظة: يوفّر دليل البدء في واجهة برمجة التطبيقات مزيدًا من التفاصيل حول الطلبات والردود الجزئية.

تسمح واجهة برمجة التطبيقات الإصدار v3، في الواقع، باسترداد الموارد الجزئية حتى تتجنب التطبيقات نقل البيانات وتحليلها وتخزينها بدون الحاجة إليها. تضمن هذه الطريقة أيضًا استخدام واجهة برمجة التطبيقات لموارد الشبكة ووحدة المعالجة المركزية (CPU) والذاكرة بكفاءة أكبر.

تتيح واجهة برمجة التطبيقات معلّمتَي طلب، part وfields، تتيح لك تحديد خصائص المورد التي يجب تضمينها في استجابات واجهة برمجة التطبيقات. تحدد المعلمة part أيضًا الخصائص التي يجب تعيينها بواسطة طلبات واجهة برمجة التطبيقات التي تدرج الموارد أو تحدّثها.

تجدر الإشارة إلى أنه إذا لم يحدّد طلب التحديث قيمة لموقع مورد كان يحتوي في السابق على قيمة، سيتم حذف القيمة الحالية في حال استيفاء الشروط التالية:

  • يمكن تعديل قيمة الخاصية من خلال الطلب. (على سبيل المثال، عند تعديل مورد video، يمكنك تعديل قيمة السمة snippet.description، ولكن لا يمكنك تعديل قيمة العنصر snippet.thumbnails.

  • تحدّد قيمة معلَمة part للطلب جزء المورد الذي يحتوي على الموقع.

مثال

على سبيل المثال، لنفترض أنك تريد تحديث مورد video الموضح أدناه. (لاحظ أنه يمكن تحديث جميع المواقع الموضحة أدناه عبر واجهة برمجة التطبيقات، كما تم حذف مواقع الموارد غير ذات الصلة بالمثال.)

{
  "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. يحتوي نص طلب واجهة برمجة التطبيقات على المورد التالي:

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

يؤدّي هذا الطلب إلى تعديل عنوان الفيديو وحذف وصفه بدون تغيير العلامات أو معرّف الفئة. تم حذف وصف الفيديو لأن الطلب لا يحدد قيمة للسمة snippet.description.

لا تتأثر الخصائص في الكائن status على الإطلاق لأن قيمة المعلَمة part لم تتضمّن status كأحد الأجزاء التي سيُحدِّثها الطلب. في الواقع، إذا تضمّن نص طلب واجهة برمجة التطبيقات العنصر status، ستعرض واجهة برمجة التطبيقات استجابة HTTP 400 (Bad Request) بسبب تضمين جزء غير متوقَّع في نص الطلب.