Dokumen ini membahas beberapa teknik yang dapat Anda gunakan untuk meningkatkan kinerja aplikasi Anda. Dalam beberapa kasus, contoh dari API lain yang diimplementasikan digunakan untuk menggambarkan ide-ide yang disajikan. Namun, konsep yang sama berlaku ke Display & Video 360 API.
Bekerja dengan resource parsial
Cara lain untuk meningkatkan performa panggilan API Anda adalah dengan meminta bagian dari data yang Anda minati. Hal ini memungkinkan aplikasi Anda menghindari transfer, penguraian, dan penyimpanan kolom yang tidak diperlukan, sehingga kolom sumber daya seperti jaringan, CPU, dan memori dengan lebih efisien.
Respons sebagian
Secara {i>default<i}, server mengirimkan kembali representasi penuh resource setelah memproses permintaan. Untuk kinerja yang lebih baik, Anda dapat meminta server untuk mengirim hanya kolom yang benar-benar Anda butuhkan dan sebagai gantinya akan mendapatkan respons sebagian.
Untuk meminta respons sebagian, gunakan parameter permintaan fields
untuk menentukan
kolom yang
ingin dikembalikan. Anda dapat menggunakan parameter ini dengan permintaan apa pun
yang menampilkan data respons.
Contoh
Contoh berikut menunjukkan penggunaan parameter fields
dengan
Layar & Video 360 API.
Permintaan sederhana: Permintaan GET
HTTP ini menghilangkan parameter fields
dan
menampilkan resource lengkap.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1
Respons resource lengkap: Data resource lengkap mencakup hal-hal berikut kolom, bersama dengan banyak bidang lainnya yang telah dihilangkan agar lebih singkat.
200 OK
{
"advertisers": [
{
"name": "advertisers/1",
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
{
"name": "advertisers/2",
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
...
],
"nextPageToken": "..."
}
Permintaan respons sebagian: Permintaan berikut untuk resource yang sama
menggunakan parameter fields
untuk mengurangi jumlah data yang ditampilkan secara signifikan.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)
Respons sebagian: Sebagai respons terhadap permintaan di atas, server akan mengirimkan kembali yang berisi susunan pengiklan ringkas yang hanya menyertakan ID pengiklan, nama tampilan, dan properti ID partner milik setiap pengiklan, jika saat ini.
200 OK
{
"advertisers": [
{
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1"
},
{
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2"
},
...
]
}
Perhatikan bahwa responsnya adalah objek JSON yang hanya menyertakan kolom yang dipilih dan objek induk yang melekat padanya.
Detail tentang cara memformat parameter fields
akan dibahas berikutnya, diikuti oleh
detail selengkapnya tentang apa yang sebenarnya
dikembalikan dalam respons.
Ringkasan sintaksis parameter kolom
Format nilai parameter permintaan fields
secara longgar didasarkan pada XPath
sintaksis. Sintaks yang didukung diringkas di bawah ini, dan contoh tambahan adalah
yang disediakan di bagian berikut.
Gunakan daftar yang dipisahkan koma untuk memilih beberapa kolom.
Gunakan
a/b
untuk memilih kolomb
yang disusun bertingkat dalam koloma
; gunakana/b/c
untuk memilih kolomc
yang disarangkan dalamb
.Gunakan sub-pemilih untuk meminta satu set sub-isian dari {i>array <i}atau objek dengan menempatkan ekspresi dalam tanda kurung "
( )
".Contoh:
fields=advertisers(advertiserId,generalConfig/domainUrl)
hanya menampilkan ID pengiklan dan URL domain untuk setiap elemen dalam pengiklan. Anda juga dapat menentukan satu sub-isian, di manafields=advertisers(advertiserId)
setara denganfields=advertisers/advertiserId
.
Contoh penggunaan parameter kolom lainnya
Contoh di bawah mencakup deskripsi tentang bagaimana nilai parameter fields
mempengaruhi respons.
- Identifikasi kolom yang ingin Anda tampilkan, atau buat pilihan kolom.
Nilai parameter permintaan
fields
adalah daftar kolom yang dipisahkan koma, dan setiap kolom ditentukan relatif terhadap {i>root <i}respons. Jadi, jika Anda melakukan operasilist
, responsnya adalah kumpulan, dan umumnya mencakup berbagai sumber daya. Jika Anda melakukan operasi yang mengembalikan satu sumber daya, bidang ditentukan relatif terhadap sumber daya resource Anda Jika kolom yang Anda pilih adalah (atau merupakan bagian dari) array, server mengembalikan bagian yang dipilih dari semua elemen dalam array.Berikut beberapa contoh tingkat koleksi:
Contoh Efek advertisers
Menampilkan semua elemen di kolom Array advertisers
, termasuk semua {i>field<i} di setiap elemen, tetapi tidak ada {i>field<i} lain.advertisers,nextPageToken
Menampilkan kedua nextPageToken
{i>field<i} dan semua elemen di Arrayadvertisers
.advertisers/advertiserId
Hanya menampilkan advertiserId
untuk semua elemen dalam Arrayadvertisers
.
Setiap kali isian bertingkat dikembalikan, responsnya mencakup objek induk yang mencakupnya. Kolom induk tidak menyertakan {i>field<i} turunan lainnya kecuali mereka juga dipilih secara eksplisit.advertisers/generalConfig/domainUrl
Menampilkan kolom domainUrl
untuk objekgeneralConfig
, yang berada di bawah Arrayadvertisers
.Berikut beberapa contoh tingkat resource:
Contoh Efek advertiserId
Menampilkan kolom advertiserId
dari resource yang diminta.generalConfig/domainUrl
Menampilkan kolom domainUrl
untuk objekgeneralConfig
pada resource yang diminta.- Hanya minta bagian kolom tertentu menggunakan sub-pilihan.
Secara default, jika permintaan Anda menentukan kolom tertentu, server akan menampilkan objek atau elemen {i>array<i} secara keseluruhan. Anda dapat menentukan respons yang hanya mencakup sub-isian tertentu. Anda melakukannya menggunakan "
( )
" sub-selection, seperti pada contoh di bawah ini.Contoh Efek advertisers(advertiserId,generalConfig/domainUrl)
Hanya mengembalikan nilai advertiserId
dan generalConfigdomainUrl
untuk setiap elemen dalamadvertisers
.
Menangani respons sebagian
Setelah server memproses permintaan valid yang menyertakan kueri fields
parameter ini, parameter akan mengirimkan kembali kode status HTTP 200 OK
, bersama dengan
layanan otomatis dan data skalabel. Jika parameter kueri fields
mengalami error atau tidak valid,
server mengembalikan kode status HTTP 400 Bad Request
, bersama dengan error
pesan yang memberi tahu Anda apa yang salah dengan pemilihan kolom (misalnya,
"Invalid field selection a/b"
).