Implementación: Respuestas parciales

Los siguientes ejemplos muestran cómo recuperar respuestas parciales de la API en la API de datos de YouTube (v3).

Nota: La guía de introducción de la API proporciona más detalles sobre las solicitudes y respuestas parciales.

La API v3 permite y, en realidad, requiere la recuperación de recursos parciales para que las aplicaciones eviten la transferencia, el análisis y el almacenamiento de 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 se deben establecer mediante 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 anteriormente tenía un valor, el valor existente se eliminará 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 propiedad snippet.description, pero no el valor del objeto snippet.thumbnails.

  • El valor del parámetro part de la solicitud identifica la parte del recurso que contiene la propiedad.

Ejemplo

Por ejemplo, supongamos que deseas 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 sean 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
  }
}

Llama al método videos.update y establece 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 su 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, ya que 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 incluía el objeto status, la API mostraba una respuesta HTTP 400 (Bad Request) debido a que se incluía una parte inesperada en el cuerpo de la solicitud.