پیاده‌سازی: پاسخ‌های جزئی

مثال‌های زیر نشان می‌دهند که چگونه پاسخ‌های جزئی API را در YouTube Data API (v3) بازیابی کنید.

توجه: راهنمای شروع به کار API جزئیات بیشتری درباره درخواست‌ها و پاسخ‌های جزئی ارائه می‌دهد.

v3 API امکان بازیابی منابع جزئی را فراهم می‌کند و درواقع آن را الزامی می‌کند تا برنامه‌ها از انتقال، تجزیه، و ذخیره داده‌های غیرضروری اجتناب کنند. این رویکرد همچنین تضمین می‌کند که میانای برنامه‌سازی کاربردی از منابع شبکه، واحد پردازش مرکزی، و حافظه به‌طور کارآمدتری استفاده کند.

این API از دو پارامتر درخواست، 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) را برمی‌گرداند زیرا بخش غیرمنتظره‌ای در بدنه درخواست گنجانده شده است.