Wdrożenie: odpowiedzi częściowe

Poniższe przykłady pokazują, jak uzyskać częściowe odpowiedzi API w YouTube Data API (v3).

Uwaga: w przewodniku dla początkujących znajdziesz więcej informacji o częściowych żądaniach i odpowiedziach.

Interfejs API w wersji 3 umożliwia pobieranie informacji o częściach, dzięki czemu aplikacje nie muszą przesyłać, analizować ani przechowywać niepotrzebnych danych. Takie podejście zapewnia też wydajniejsze wykorzystanie zasobów sieciowych, CPU i pamięci.

Interfejs API obsługuje 2 parametry żądania: part i fields, które umożliwiają identyfikowanie właściwości zasobu, które powinny być uwzględniane w odpowiedziach interfejsu API. Parametr part wskazuje też właściwości, które powinny być ustawiane przez żądania do interfejsu API wstawiane lub aktualizowane.

Pamiętaj, że jeśli żądanie aktualizacji nie określa wartości właściwości zasobu, która wcześniej miała wartość, istniejąca wartość zostanie usunięta, jeśli są spełnione te warunki:

  • Wartość właściwości można zmienić w żądaniu. Na przykład w przypadku aktualizowania zasobu video możesz zaktualizować wartość właściwości snippet.description, ale nie możesz zaktualizować wartości obiektu snippet.thumbnails.

  • Wartość parametru part żądania określa część zasobu zawierającą właściwość.

Przykład

Załóżmy, że chcesz zaktualizować zasób video widoczny poniżej. (wszystkie wymienione poniżej właściwości można aktualizować za pomocą interfejsu API, a zasoby, które nie są istotne w przykładzie, zostały pominięte).

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

Wywołujesz metodę videos.update i ustawiasz wartość parametru part na snippet. Treść żądania do interfejsu API zawiera ten zasób:

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

To żądanie aktualizuje tytuł filmu, usuwa jego opis i nie zmienia tagów ani identyfikatora kategorii. Opis filmu został usunięty, ponieważ żądanie nie określa wartości właściwości snippet.description.

Nie ma to wpływu na właściwości w obiekcie status, ponieważ wartość parametru part nie zawiera wartości status, ponieważ jedna z części zostanie zaktualizowana w żądaniu. Jeśli treść żądania do interfejsu API zawiera obiekt status, to interfejs API zwróci odpowiedź HTTP 400 (Bad Request) z powodu nieoczekiwanej części w treści żądania.