Uygulama: Kısmi yanıtlar

Aşağıdaki örneklerde, YouTube Data API'sinde (v3) kısmi API yanıtlarının nasıl alınacağı gösterilmektedir.

Not: API'nin başlangıç kılavuzu, kısmi istekler ve yanıtlar hakkında daha fazla ayrıntı sağlar.

v3 API, uygulamaların gereksiz verileri aktarmasını, ayrıştırmasını ve depolamasını önlemek için kısmi kaynakların alınmasını sağlar ve bunu gerektirir. Bu yaklaşım, API'nin ağ, CPU ve bellek kaynaklarını daha verimli kullanmasını da sağlar.

API, API isteklerine eklenmesi gereken kaynak özelliklerini belirleyebilmenizi sağlayan iki istek parametresini (part ve fields) destekler. part parametresi, kaynak ekleyen veya güncelleyen API istekleri tarafından ayarlanması gereken özellikleri de tanımlar.

Güncelleme isteğinde daha önce bir değere sahip olan kaynak mülkü için bir değer belirtilmezse aşağıdaki koşulların geçerli olması durumunda mevcut değerin silineceğini unutmayın:

  • Tesisin değeri istek tarafından değiştirilebilir. (Örneğin, bir video kaynağını güncellerken snippet.description özelliğinin değerini güncelleyebilirsiniz, ancak snippet.thumbnails nesnesinin değerini güncelleyemezsiniz.

  • İsteğin part parametre değeri, mülkü içeren kaynak bölümünü tanımlar.

Örnek

Örneğin, aşağıda gösterilen video kaynağını güncellemek istediğinizi varsayalım. (Aşağıda gösterilen tüm özelliklerin API aracılığıyla güncellenebileceğini ve örnekle alakalı olmayan kaynak mülklerin atlandığını unutmayın.)

{
  "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 yöntemini çağırıp part parametre değerini snippet olarak ayarlarsınız. API isteğinin gövdesi, aşağıdaki kaynağı içerir:

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

Bu istek videonun başlığını günceller, açıklamasını siler ve etiketlerini veya kategori kimliğini değiştirmez. İstek, snippet.description özelliği için bir değer belirtmediği için videonun açıklaması silindi.

part parametresi değeri, isteğin güncelleneceği parçalardan biri olarak status içermediğinden status nesnesindeki özellikler hiç etkilenmez. Aslında, API isteğinin gövdesi status nesnesini içeriyorsa istek gövdesine beklenmedik bir bölüm eklenmesi nedeniyle API, 400 (Bad Request) HTTP yanıtı döndürür.