En los siguientes ejemplos, se muestra cómo recuperar respuestas parciales de la API en la API de YouTube Data (v3).
Nota: La guía de iniciación de la API proporciona más detalles sobre las solicitudes y respuestas parciales.
La API de la versión 3 permite, y en realidad requiere, la recuperación de recursos parciales para que las aplicaciones eviten transferir, analizar y almacenar datos innecesarios. Este enfoque también garantiza que la API utilice los recursos de red, CPU y memoria con mayor eficiencia.
La API admite dos parámetros de solicitud, part
y fields
, que te permiten identificar las propiedades de los recursos que se deben incluir en las respuestas de la API. El parámetro part
también identifica las propiedades que deben establecer las solicitudes a la API que insertan o actualizan recursos.
Ten en cuenta que, si una solicitud de actualización no especifica un valor para una propiedad de recurso que tenía un valor anteriormente, se borrará el valor existente si se cumplen las siguientes condiciones:
-
La solicitud puede modificar el valor de la propiedad. (por ejemplo, cuando actualizas un recurso
video
, puedes actualizar el valor de la propiedadsnippet.description
, pero no puedes actualizar el valor del objetosnippet.thumbnails
. -
El valor del parámetro
part
de la solicitud identifica la parte del recurso que contiene la propiedad.
Ejemplo
Por ejemplo, supongamos que quieres actualizar el recurso video
que se muestra a continuación. (Ten en cuenta que todas las propiedades que se muestran a continuación se pueden actualizar a través de la API y que se omitieron las propiedades de recursos que no son relevantes para el ejemplo).
{ "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 } }
Llamas al método videos.update
y estableces el valor del parámetro part
en snippet
. El cuerpo de la solicitud a la API contiene el siguiente recurso:
{ "snippet": { "title": "New video title", "tags": ["keyword1","keyword2","keyword3"], "categoryId: 22 } }
Esta solicitud actualiza el título del video, borra su descripción y no cambia sus etiquetas ni el ID de categoría. La descripción del video se borra porque la solicitud no especifica un valor para la propiedad snippet.description
.
Las propiedades del objeto status
no se ven afectadas en absoluto porque el valor del parámetro part
no incluyó status
como una de las partes que actualizaría la solicitud. De hecho, si el cuerpo de la solicitud a la API incluyera el objeto status
, la API mostraría una respuesta HTTP 400 (Bad Request)
debido a que se incluye una parte inesperada en el cuerpo de la solicitud.