Genişletilmiş mülkler

Etkinlik kaynaklarının alanları, bir etkinlikle ilişkili en yaygın verileri (ör. konum, başlangıç zamanı vb.) kapsar ancak uygulamalar, kullanım alanlarına özel ek meta veriler depolamak isteyebilir. Calendar API, gizli anahtar/değer çiftlerini genişletilmiş özellikler adı verilen bir etkinlikle ayarlamanıza olanak tanır. Genişletilmiş özellikler, harici bir veritabanı kullanmak zorunda kalmadan bir etkinlik için uygulamaya özel verilerin depolanmasını kolaylaştırır.

Görünürlük

İki tür genişletilmiş mülk vardır: gizli ve paylaşılan. Paylaşılan özellikler bir etkinliğin tüm katılımcıları tarafından görüntülenebilir ve düzenlenebilir. Özel mülkler ise bir katılımcının etkinliğin yerel "kopyasında" ayarlanır. Daha somut olarak belirtmek gerekirse özel mülkler, istekte kullanılan calendarId ve eventId özelliklerine özelken paylaşılan mülkler, istekte kullanılan calendarId ne olursa olsun gösterilir.

Mülk ekleme ve güncelleme

Genişletilmiş özellikler Etkinlikler kaynağında ayarlanır ve diğer alanlar gibi insert, update ve patch isteklerinde ayarlanabilir. Bazı özellikleri değiştirirken diğerlerini değiştirmeden bırakmanıza olanak tanıdığından yama isteklerini kullanmak tercih edilen yöntemdir. Aynı anahtara sahip yeni bir mülk eklendiğinde, aynı anahtara sahip mevcut tüm mülklerin üzerine yazılır. Aşağıdaki örnekte bir özel mülkün ayarlanması gösterilmektedir:

PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
  "extendedProperties": {
    "private": {
      "petsAllowed": "yes"
    }
  }
}

Mülkleri sil

Güncelleme isteğine dahil olmayan tüm özellikler silinir. Ancak değeri null olarak ayarlamak için yama isteğinde bulunmak daha iyi bir yaklaşımdır. Aşağıdaki örnekte özel bir mülkün silinmesi gösterilmektedir:

PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
  "extendedProperties": {
    "private": {
      "petsAllowed": null
    }
  }
}

Arama mülkleri

Events.list isteğini kullanarak etkinlikleri genişletilmiş mülklerindeki değerlere göre arayabilirsiniz. privateExtendedProperty veya sharedExtendedProperty alanını, sırasıyla özel ve paylaşılan mülklerde arama yapan propertyName=value biçimindeki bir kısıtlamaya ayarlayın. Aşağıdaki örnek, petsAllowed=yes özel mülküne sahip etkinlikleri döndürür:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
    ?privateExtendedProperty=petsAllowed%3Dyes

Bu alanları birden çok kez tekrarlayabilirsiniz ve kısıtlamalar birlikte VEYA uygulanır. Böylece etkinliklerin, döndürülecek kısıtlamalardan yalnızca biriyle eşleşmesi gerekir. Aşağıdaki örnekte petsAllowed=yes veya isOutside=yes özel mülküne sahip etkinlikler bulunmuştur:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
    ?privateExtendedProperty=petsAllowed%3Dyes
    &privateExtendedProperty=isOutside%3Dyes

Bununla birlikte, özel ve paylaşılan mülklerdeki kısıtlamaların birlikte VE ile alındığını unutmayın. Bu nedenle, etkinliklerin döndürülmesi için her iki sınırlama grubuyla da eşleşmesi gerekir. Aşağıdaki örnekte petsAllowed=yes özel mülkü ve createdBy=myApp genel mülküne sahip etkinlikler bulunmaktadır:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events
    ?privateExtendedProperty=petsAllowed%3Dyes
    &sharedExtendedProperty=createdBy%3DmyApp

Sınırlar

  1. Bir mülk anahtarının maksimum boyutu 44 karakterdir ve daha uzun anahtarlara sahip mülkler sessizce atlanır.
  2. Bir özelliğin değerinin maksimum boyutu 1.024 karakterdir ve daha uzun değerlere sahip özellikler sessizce kısaltılır.
  3. Bir etkinliğin boyutu en fazla 32 kB olan 300 mülk olabilir (anahtar boyutu + değer boyutu). Bu 300 mülk, etkinliğin tüm "kopyalarında" paylaşılan ve özel mülkleri içerir.