Implementasi: Respons sebagian

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 properti snippet.description, tetapi tidak dapat memperbarui nilai objek snippet.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.