نحن بصدد تعديل Data API لتتطابق مع طريقة YouTube في احتساب مشاهدات Shorts.
مزيد من المعلومات
التنفيذ: الردود الجزئية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
توضّح الأمثلة التالية كيفية استرداد ردود جزئية من واجهة برمجة التطبيقات في YouTube Data API (الإصدار 3).
ملاحظة: يقدّم دليل البدء لواجهة برمجة التطبيقات مزيدًا من التفاصيل حول الطلبات والردود الجزئية.
تسمح وتطلب v3 API استرداد الموارد الجزئية كي تتجنب التطبيقات نقل البيانات غير المطلوبة وتحليلها وتخزينها. يضمن هذا النهج أيضًا أن تستخدم واجهة برمجة التطبيقات موارد الشبكة ووحدة المعالجة المركزية والذاكرة بكفاءة أكبر.
تتيح لك واجهة برمجة التطبيقات معلمتَي طلب، وهما 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)
بسبب تضمين جزء غير متوقّع في نص الطلب.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-23 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2024-11-23 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe YouTube Data API (v3) requires retrieving partial resources to optimize data transfer, parsing, and storage.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003epart\u003c/code\u003e and \u003ccode\u003efields\u003c/code\u003e parameters enable users to specify which resource properties to include in API responses.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003epart\u003c/code\u003e parameter also dictates which properties are set during resource insertion or update requests.\u003c/p\u003e\n"],["\u003cp\u003eOmitting a previously valued property in an update request, within the specified \u003ccode\u003epart\u003c/code\u003e, will delete that property's value if modifiable.\u003c/p\u003e\n"],["\u003cp\u003eIncluding unexpected parts in an update request's body, meaning a part not listed in the \u003ccode\u003epart\u003c/code\u003e parameter, will result in a \u003ccode\u003e400 (Bad Request)\u003c/code\u003e HTTP response.\u003c/p\u003e\n"]]],["The YouTube Data API (v3) uses `part` and `fields` parameters to enable partial resource retrieval, improving efficiency by avoiding unnecessary data transfer. The `part` parameter identifies properties for retrieval and modification. When updating, omitting a previously valued property in the specified `part` results in its deletion. For example, updating a video resource's `snippet` part without including `description` deletes the description. Updating a property that is not in the part of the request being modified is not possible.\n"],null,["# Implementation: Partial responses\n\nThe following examples show how to retrieve partial API responses in the YouTube Data API (v3).\n\n**Note:** The API's [getting started](/youtube/v3/getting-started#partial) guide provides more detail about partial requests and responses.\n\nThe v3 API allows, and actually requires, the retrieval of partial resources so that applications avoid transferring, parsing, and storing unneeded data. This approach also ensures that the API uses network, CPU, and memory resources more efficiently.\n\nThe API supports two request parameters, `part` and `fields`, that enable you to identify the resource properties that should be included in API responses. The `part` parameter also identifies the properties that should be set by API requests that insert or update resources.\n\nNote that if an update request does not specify a value for a resource property that previously had a value, the existing value will be deleted if the following conditions are true:\n\n- The property's value can be modified by the request. (For example, when updating a `video` resource, you can update the value of the `snippet.description` property, but you cannot update the value of the `snippet.thumbnails` object.\n\n- The request's `part` parameter value identifies the resource part that contains the property.\n\n#### Example\n\nFor example, suppose you want to update the `video` resource shown below. (Note that all of the properties shown below can be updated via the API, and resource properties not relevant to the example have been omitted.) \n\n```\n{\n \"snippet\": {\n \"title\": \"Old video title\",\n \"description\": \"Old video description\",\n \"tags\": [\"keyword1\",\"keyword2\",\"keyword3\"],\n \"categoryId: 22\n },\n \"status\": {\n \"privacyStatus\": \"private\",\n \"publishAt\": \"2014-09-01T12:00:00.0Z\",\n \"license\": \"youtube\",\n \"embeddable\": True,\n \"publicStatsViewable\": True\n }\n}\n```\n\nYou call the [videos.update](/youtube/v3/docs/videos/update) method and set the `part` parameter value to `snippet`. The body of the API request contains the following resource: \n\n```\n{\n \"snippet\": {\n \"title\": \"New video title\",\n \"tags\": [\"keyword1\",\"keyword2\",\"keyword3\"],\n \"categoryId: 22\n }\n}\n```\n\nThis request updates the video's title, deletes its description, and does not change its tags or category ID. The video's description is deleted because the request does not specify a value for the `snippet.description` property.\n\nThe properties in the `status` object are not affected at all because the `part` parameter value did not include `status` as one of the parts that the request would update. In fact, if the body of the API request included the `status` object, the API would return a `400 (Bad Request)` HTTP response due to an [unexpected part](/youtube/v3/docs/errors#youtube.api.RequestContextError-badRequest-unexpectedPart) being included in the request body."]]