Sürüm oluşturma

Ad Manager REST API'de hem Ana sürüm sürümleri hem de geriye dönük uyumlu, şimdiki ana sürüme yapılan sürümlerle uyumludur.

Hizmetler, yöntemler ve alanlar, Ancak ana sürüm (ör.v1), söz konusu Ana Sürüme kadar desteklenmeye devam edecektir. sürümü kullanımdan kaldırıldı.

Ana sürüm sürümleri

Ana sürüm sürümü, eski sürümlerle uyumsuz olan bir sürüm olarak tanımlanır API değişiklikleri. Bu sürümler adlandırılacak ve farklı API uç noktalarına sahip olacak. Önceki ana sürümler, taşıma döneminde desteklenir.

Ad Manager REST API'nin Büyük için düzenli bir sürüm sıklığı yoktur sürümleri vardır. Yeni ana sürümler yalnızca gerekli olduğunda yayınlanacaktır.

Yerinde yayınlar

Yeni özellikler ve hata düzeltmeleri de dahil olmak üzere geriye dönük uyumlu değişiklikler yayınlandı ana API sürümüne geçmelidir. İstemciler bilinmeyen alanları işlemelidir API yanıtlarında.

Geriye Dönük Uyumluluk

Ana sürümdeki değişiklikler için geriye dönük uyumluluk korunur. Uyumluluk şu şekilde tanımlanır:

  1. Kaynak uyumluluğu: Önceki bir sürüme karşı yazılan kod derlenir karşılaştırıldığında ve yeni bir sürümle başarılı bir şekilde çalıştırıldığından kullanabilirsiniz.

  2. Kablo uyumluluğu: Önceki bir sürüme göre yazılmış kod yeni bir sunucuyla doğru şekilde iletişim kurduğundan emin olun. Başka bir deyişle, ve çıkışlar uyumlu olsa da serileştirme ve seri durumdan çıkarma beklentileri eşleştirmeye devam eder.

  3. Anlamsal uyumluluk: Önceki bir sürüme karşı yazılan kod devam eder almayı sağlayan bir web sitesidir.

Aşağıdaki tablolarda, API değişikliği türleri ve bunların dikkate alınıp alınmadığı açıklanmaktadır. geriye dönük uyumluluğa sahiptir.

Hizmetler

Değişiklik Türü Geriye dönük uyumlu
Yeni hizmet ekleyin Evet
Hizmeti kaldırma Hayır

Yöntemler

Değişiklik Türü Geriye dönük uyumlu
Yeni yöntem ekleyin Evet
Yöntem kaldırma Hayır
Bir yöntemin istek veya yanıt türünü değiştirme Hayır

Nesneler

Değişiklik Türü Geriye dönük uyumlu
Zorunlu alan ekleyin Hayır
İsteğe bağlı bir alan ekleyin Evet
Bir alanı alt iletiye veya alt iletinin dışına taşıma Hayır
Zorunlu olan alanı isteğe bağlı olarak değiştirme Evet
İsteğe bağlı olan bir alanı zorunlu olarak değiştirme Hayır
Sabit kısıtlamayı kaldırma Evet
Sabit kısıtlama ekle Hayır

Numaralandırmalar

Değişiklik Türü Geriye dönük uyumlu
Sıralama değeri ekle Evet
Sıralama değerini kaldırma Hayır

Kullanımdan kaldırılan alan davranışı

Yeni alanlar

Değiştirilen alanlar için her iki alan da uygun olduğunda doldurulur. Güncelleme sırasında her iki alan da ayarlanabilir. Her iki alanın da güncellemeye dahil edilmesi isteği, INVALID_ARGUMENT hatasıyla sonuçlanıyor.

Aşağıdaki şemayı göz önünde bulundurun:

{
  // The cost of this Foo in micros.
  // Deprecated: Use `cost` instead.
  "costMicros": number,

  // The cost of this Foo.
  "cost": {
    object (Money)
  }
}

Okundu yanıtı her iki alanı da eşdeğer değerlerle doldurur:

{
  "costMicros": 1250000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 250000000
  }
}

Güncelleme istekleri iki değerden birini ayarlayabilir. Her iki alan da dahil edildiğinde INVALID_ARGUMENT hata:

costMicros

// Update payload
{
  "costMicros": 1500000
}

// Response payload
{
  "costMicros": 1500000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

maliyet

// Update payload
{
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

// Response payload
{
  "costMicros": 1500000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

Her ikisi de

// 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."
          }
        ]
      }
    ]
  }
}

Kullanımdan kaldırılan özellikler

Bir ürün özelliği kullanımdan kaldırılırsa ilgili alanlar ve anlam açısından uygun bir varsayılan değer döndürebilir. Güncellemeler yoksayabilirsiniz.

{
  // The salesperson split amount in micros.
  // Deprecated: The Sales Management feature has been deprecated. This field
  // will always be `0`.
  "salespersonSplitMicros": number,
}