Documentazione

1Scopo

Lo scopo del concetto di label è estendere dinamicamente determinati modelli di dati. Le proprietà di quei modelli differiscono a seconda del contesto in cui vengono creati o utilizzati. L’infrastruttura delle label è rilevante solo quando le informazioni devono essere elaborate da un’applicazione di terze parti o se le informazioni aggiuntive devono essere mostrate su un’interfaccia utente di un’applicazione di terze parti. Se non è questo il caso, le label in genere non sono rilevanti.

2Descrittori di label

Poiché estendiamo dinamicamente i modelli di dati, dobbiamo descrivere i dati che restituiamo. Per ogni label restituiamo anche il descrittore di label. Il descrittore fornisce la semantica dell’elemento di dati. Fornisce anche una descrizione e un nome che possono essere compresi da un utente umano.

Inoltre, il descrittore contiene un tipo. Il tipo indica di quale tipo (string, integer, ecc.) è il valore della label.

3Risolvere le descrizioni tramite l’API del servizio web

I descrittori di label possono essere recuperati tramite l’API del servizio web utilizzando il Label Descriptor Service. Una label è composta da un value, un type e un descriptor. L’id del descrittore può essere risolto tramite l’API del servizio web per ottenere le informazioni aggiuntive.

4Esempio di label

Un oggetto con label può avere un aspetto simile al seguente JSON:

{
	"id": 123141,
	"regularProperty": "A regular property which is not dynamically added.",
	"labels": [
		{
			"content": "Sample Label Value",
			"contentAsString": "Sample Label Value",
			"descriptor": 11001231,
			"displayName": "ID: 58",
			"id":58,
			"version":0
		}
	]
}

In questo esempio abbiamo una label con il valore Sample Label Value. I dettagli sulla label possono essere trovati interrogando il descrittore di label. Il descrittore fornirà i seguenti dati:

{
	"id": 11001231,
	"name": "Sample Label",
	"category": "HUMAN",
	"description":{
		"en-US":"This field will contain a human understandable description of the label in English."
	},
	"type": {
		"description":{
			"en-US":"The string label type indicates that the label value is of the type string."
		},
		"id":1455545848917,
		"name":{
			"en-US":"String"
		}
	},
	...
}

Come mostra l’esempio, il descrittore fornisce una descrizione, un nome, un tipo e altre proprietà. Il tipo verrà utilizzato anche per altri descrittori. Per utilizzare correttamente questa infrastruttura, per ogni tipo di label dovrebbe essere implementato un handler. In questo modo è possibile realizzare un’implementazione generica per gestire le label. Nel caso in cui siano di interesse solo alcuni descrittori di label particolari, può anche avere senso gestire solo quelle label.

5Tipo di label: valore statico

Il tipo di label a valore statico è particolare perché la label contiene in realtà un ID di un altro oggetto. L’oggetto può essere risolto tramite l’API REST per i valori statici. Tipicamente tali valori rappresentano oggetti che non cambiano. Sono paragonabili agli Enums noti in alcuni linguaggi di programmazione.

Staging 2.218.1