Contoh berikut menunjukkan cara mengambil respons sebagian API di YouTube Data API (v3).
Catatan: Panduan memulai API memberikan detail selengkapnya tentang permintaan dan respons parsial.
API v3 memungkinkan, dan sebenarnya memerlukan, pengambilan resource parsial, sehingga aplikasi menghindari transfer, penguraian, dan penyimpanan data yang tidak diperlukan. Pendekatan ini juga memastikan bahwa API menggunakan resource jaringan, CPU, dan memori secara lebih efisien.
API ini mendukung dua parameter permintaan, part
dan fields
, yang memungkinkan Anda mengidentifikasi properti resource yang harus disertakan dalam respons API. Parameter part
juga mengidentifikasi properti yang harus ditetapkan oleh permintaan API yang menyisipkan atau memperbarui resource.
Perhatikan bahwa jika permintaan pembaruan tidak menentukan nilai untuk properti resource yang sebelumnya memiliki nilai, nilai yang sudah ada akan dihapus jika kondisi berikut terpenuhi:
-
Nilai properti dapat diubah sesuai permintaan. (Misalnya, saat memperbarui resource
video
, Anda dapat memperbarui nilai propertisnippet.description
, tetapi tidak dapat memperbarui nilai objeksnippet.thumbnails
. -
Nilai parameter
part
permintaan mengidentifikasi bagian resource yang berisi properti.
Contoh
Misalnya, Anda ingin memperbarui resource video
yang ditampilkan di bawah ini. (Perhatikan bahwa semua properti yang ditampilkan di bawah dapat diperbarui melalui API, dan properti resource yang tidak relevan dengan contoh telah dihilangkan.)
{ "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 } }
Anda memanggil metode videos.update
dan menetapkan nilai parameter part
ke snippet
. Isi permintaan API berisi resource berikut:
{ "snippet": { "title": "New video title", "tags": ["keyword1","keyword2","keyword3"], "categoryId: 22 } }
Permintaan ini memperbarui judul video, menghapus deskripsinya, dan tidak mengubah tag atau ID kategorinya. Deskripsi video dihapus karena permintaan tidak menentukan nilai untuk properti snippet.description
.
Properti dalam objek status
tidak terpengaruh sama sekali karena nilai parameter part
tidak menyertakan status
sebagai salah satu bagian yang akan diperbarui oleh permintaan. Bahkan, jika isi permintaan API menyertakan objek status
, API akan menampilkan respons HTTP 400 (Bad Request)
karena bagian yang tidak terduga disertakan dalam isi permintaan.