Ad Manager REST API memiliki rilis versi Utama dan rilis di tempat yang kompatibel dengan versi sebelumnya ke versi Utama saat ini.
Layanan, metode, dan kolom dapat ditandai sebagai tidak digunakan lagi kapan saja dalam Namun, versi utama (mis. v1) akan tetap didukung hingga versi Utama versi dihentikan.
Rilis versi utama
Rilis versi utama didefinisikan sebagai rilis yang tidak kompatibel dengan versi sebelumnya Perubahan API. Rilis ini akan diberi nama dan memiliki endpoint API yang berbeda. Versi Utama sebelumnya didukung untuk periode migrasi.
Ad Manager REST API tidak memiliki ritme rilis reguler untuk Utama versi. Versi Utama baru hanya akan dirilis jika diperlukan.
Rilis di tempat
Perubahan yang kompatibel dengan versi lama termasuk fitur baru dan perbaikan bug dirilis diterapkan pada versi Major API saat ini. Klien harus menangani kolom yang tidak diketahui dalam respons API.
Kompatibilitas Mundur
Kompatibilitas mundur dipertahankan untuk perubahan dalam versi Utama. Kompatibilitas didefinisikan sebagai:
Kompatibilitas sumber: Kode yang ditulis berdasarkan kompilasi rilis sebelumnya terhadap rilis yang lebih baru, dan berhasil berjalan dengan versi yang lebih baru dari library klien.
Kompatibilitas kabel: Kode yang ditulis berdasarkan rilis sebelumnya berkomunikasi dengan benar dengan server yang lebih baru. Dengan kata lain, tidak hanya input, dan output-nya kompatibel, tetapi ekspektasi serialisasi dan deserialisasi terus cocok.
Kompatibilitas semantik: Kode yang ditulis berdasarkan versi sebelumnya berlanjut untuk mendapatkan apa yang diharapkan pengembang paling masuk akal.
Tabel berikut mencantumkan jenis perubahan API dan apakah perubahan tersebut dipertimbangkan kompatibel dengan teknologi lama.
Layanan
Jenis Perubahan | Kompatibel dengan versi lama |
---|---|
Menambahkan layanan baru | Ya |
Menghapus layanan | Tidak |
Metode
Jenis Perubahan | Kompatibel dengan versi lama |
---|---|
Tambahkan metode baru | Ya |
Menghapus metode | Tidak |
Mengubah jenis permintaan atau respons metode | Tidak |
Objek
Jenis Perubahan | Kompatibel dengan versi lama |
---|---|
Tambahkan kolom wajib diisi | Tidak |
Menambahkan kolom opsional | Ya |
Memindahkan kolom ke dalam atau keluar dari subpesan | Tidak |
Mengubah kolom dari wajib diisi menjadi opsional | Ya |
Mengubah kolom dari opsional menjadi wajib diisi | Tidak |
Menghapus batasan yang tidak dapat diubah | Ya |
Tambahkan batasan yang tidak dapat diubah | Tidak |
Enumerasi
Jenis Perubahan | Kompatibel dengan versi lama |
---|---|
Menambahkan nilai enum | Ya |
Menghapus nilai enum | Tidak |
Perilaku kolom yang tidak digunakan lagi
Kolom pengganti
Untuk kolom yang memiliki pengganti, kedua kolom akan diisi jika memungkinkan.
Saat memperbarui, kedua kolom dapat ditetapkan. Menyertakan kedua kolom dalam update
permintaan akan menghasilkan error INVALID_ARGUMENT
.
Pertimbangkan skema berikut:
{
// The cost of this Foo in micros.
// Deprecated: Use `cost` instead.
"costMicros": number,
// The cost of this Foo.
"cost": {
object (Money)
}
}
Respons baca mengisi kedua kolom dengan nilai yang setara:
{
"costMicros": 1250000,
"cost": {
"currencyCode": "USD",
"units": "1",
"nanos": 250000000
}
}
Permintaan update dapat menetapkan salah satu nilai. Menyertakan kedua {i>field<i} akan menghasilkan
INVALID_ARGUMENT
error:
costMicros
// Update payload
{
"costMicros": 1500000
}
// Response payload
{
"costMicros": 1500000,
"cost": {
"currencyCode": "USD",
"units": "1",
"nanos": 500000000
}
}
biaya
// Update payload
{
"cost": {
"currencyCode": "USD",
"units": "1",
"nanos": 500000000
}
}
// Response payload
{
"costMicros": 1500000,
"cost": {
"currencyCode": "USD",
"units": "1",
"nanos": 500000000
}
}
Keduanya
// Update payload
{
"costMicros": 1250000,
"cost": {
"currencyCode": "USD",
"units": "1",
"nanos": 500000000
}
}
// Response payload
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "costMicros",
"description": "Cannot update both costMicros and cost."
}
]
}
]
}
}
Fitur yang dihentikan
Jika fitur produk dihentikan, kolom yang sesuai akan ditandai sebagai tidak digunakan lagi dan dapat menampilkan nilai default yang sesuai secara semantik. Info terbaru dapat diabaikan.
{
// The salesperson split amount in micros.
// Deprecated: The Sales Management feature has been deprecated. This field
// will always be `0`.
"salespersonSplitMicros": number,
}