Implementierung: Teilantworten

In den folgenden Beispielen wird gezeigt, wie du in der YouTube Data API (Version 3) teilweise API-Antworten abrufen kannst.

Hinweis:Weitere Informationen zu teilweisen Anfragen und Antworten findest du in der Einstiegsanleitung für die API.

Die V3 API ermöglicht und erfordert sogar den Abruf teilweiser Ressourcen, damit Anwendungen nicht benötigte Daten übertragen, parsen und speichern müssen. Außerdem wird dadurch sichergestellt, dass die API Netzwerk-, CPU- und Arbeitsspeicherressourcen effizienter nutzt.

Die API unterstützt zwei Anfrageparameter, part und fields, mit denen Sie die Ressourceneigenschaften angeben können, die in API-Antworten enthalten sein sollen. Der Parameter part gibt auch die Eigenschaften an, die durch API-Anfragen festgelegt werden sollten, mit denen Ressourcen eingefügt oder aktualisiert werden.

Wenn in einer Aktualisierungsanfrage kein Wert für eine Ressourceneigenschaft angegeben ist, die zuvor einen Wert hatte, wird der vorhandene Wert gelöscht, wenn die folgenden Bedingungen erfüllt sind:

  • Der Wert des Attributs kann durch die Anfrage geändert werden. Wenn Sie beispielsweise eine video-Ressource aktualisieren, können Sie den Wert der snippet.description-Eigenschaft aktualisieren, aber nicht den Wert des snippet.thumbnails-Objekts.

  • Der Wert des Parameters part der Anfrage gibt den Ressourcenteil an, der die Property enthält.

Beispiel

Angenommen, Sie möchten die unten gezeigte video-Ressource aktualisieren. Hinweis: Alle unten aufgeführten Properties können über die API aktualisiert werden. Ressourceneigenschaften, die für das Beispiel nicht relevant sind, wurden weggelassen.

{
  "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
  }
}

Sie rufen die Methode videos.update auf und legen den Parameterwert part auf snippet fest. Der Body der API-Anfrage enthält die folgende Ressource:

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

Bei dieser Anfrage wird der Titel des Videos aktualisiert, die Beschreibung gelöscht und die Tags oder die Kategorie-ID bleiben unverändert. Die Videobeschreibung wird gelöscht, da in der Anfrage kein Wert für die Property snippet.description angegeben ist.

Die Properties im status-Objekt sind überhaupt nicht betroffen, da der Parameterwert part status nicht als einen der Teile enthält, die durch die Anfrage aktualisiert werden. Wenn der Anfragetext der API das status-Objekt enthält, würde die API eine 400 (Bad Request)-HTTP-Antwort zurückgeben, da ein unerwarteter Teil im Anfragetext enthalten ist.