I campi delle risorse Eventi coprono i dati più comuni associati a un evento, come posizione, ora di inizio e così via, ma le applicazioni potrebbero voler memorizzare metadati aggiuntivi specifici per il loro caso d'uso. L'API Calendar offre la possibilità di impostare coppie chiave-valore nascoste con un evento, chiamate proprietà estese. Le proprietà estese semplificano l'archiviazione dei dati specifici dell'applicazione per un evento senza dover utilizzare un database esterno.
Visibilità
Sono disponibili due tipi di proprietà estese: private e condivise.
Le proprietà condivise sono visibili e modificabili da tutti i partecipanti a un evento, mentre
le proprietà private vengono impostate sulla "copia " locale dell'evento di un partecipante. Più
concretamente, le proprietà private sono specifiche di calendarId
e eventId
utilizzati nella richiesta, mentre le proprietà condivise verranno mostrate indipendentemente da
calendarId
utilizzato nella richiesta.
Aggiungere e aggiornare le proprietà
Le proprietà estese vengono impostate nella risorsa Events e, come altri campi, possono essere impostate nelle richieste insert, update e patch. L'utilizzo delle richieste di patch è il metodo preferito, in quanto consente di manipolare alcune proprietà lasciando intatte le altre. L'aggiunta di una nuova proprietà con la stessa chiave sovrascriverà le proprietà esistenti con la stessa chiave. L'esempio seguente mostra l'impostazione di una proprietà privata:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": "yes"
}
}
}
Eliminare proprietà
Le proprietà non incluse in una richiesta di aggiornamento verranno eliminate, ma un approccio migliore è quello di effettuare una richiesta di patch per impostare il valore su null. L'esempio seguente mostra l'eliminazione di una proprietà privata:
PATCH https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
{
"extendedProperties": {
"private": {
"petsAllowed": null
}
}
}
Cerca proprietà
Puoi cercare gli eventi in base ai valori delle loro proprietà estese utilizzando una richiesta
Events.list.
Imposta il campo
privateExtendedProperty
o
sharedExtendedProperty
su un vincolo nel formato propertyName=value
,
che esegue la ricerca rispettivamente nelle proprietà private e condivise. Il seguente
esempio restituisce eventi con la proprietà privata petsAllowed=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes
Puoi ripetere questi campi più volte e i vincoli vengono combinati con l'operatore OR, quindi gli eventi devono corrispondere a uno solo dei vincoli per essere restituiti.
L'esempio seguente trova gli eventi con la proprietà privata
petsAllowed=yes
o isOutside=yes
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &privateExtendedProperty=isOutside%3Dyes
Tieni presente che i vincoli sulle proprietà private e condivise vengono combinati con l'operatore AND, quindi gli eventi devono corrispondere a entrambi i gruppi di vincoli per essere restituiti.
L'esempio seguente trova gli eventi con la proprietà privata petsAllowed=yes
e la proprietà pubblica createdBy=myApp
:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events ?privateExtendedProperty=petsAllowed%3Dyes &sharedExtendedProperty=createdBy%3DmyApp
Limiti
- La dimensione massima della chiave di una proprietà è di 44 caratteri e le proprietà con chiavi più lunghe verranno eliminate automaticamente.
- La dimensione massima del valore di una proprietà è 1024 caratteri e le proprietà con valori più lunghi verranno troncate automaticamente.
- Un evento può avere fino a 300 proprietà per un totale di 32 kB di dimensioni (dimensione delle chiavi + dimensione dei valori). Queste 300 proprietà includono proprietà condivise e private in tutte le "copie" dell'evento.