Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| apireference:struttura [2024/04/08 10:07] – marcomerlino | apireference:struttura [2024/04/08 10:41] (versione attuale) – marcomerlino | ||
|---|---|---|---|
| Linea 48: | Linea 48: | ||
| * " | * " | ||
| * " | * " | ||
| + | |||
| + | === Note importanti: === | ||
| + | |||
| + | In EcmaScript / JSON sono definiti solo numeri a virgola mobile, in json saranno rappresentati come tali | ||
| + | Per molte applicazioni (finanziare / di sicurezza / di consistenza / di real time / di performance) non sono utilizzabili numeri a virgola mobile | ||
| + | Sarà responsabilità del microservizio, | ||
| + | conversione da e verso un certo formato quando lo stesso dovrà codificare o decodificare uno di | ||
| + | questi campi. | ||
| + | |||
| + | === Ad esempio: === | ||
| + | |||
| + | Potremmo identificare un campo " | ||
| + | |||
| + | Potremmo identificare un campo " | ||
| + | |||
| + | Le funzioni di ricerca previste per questo tipo di campo sono quelle di uguaglianza (" | ||
| + | |||
| + | In questa specifica non è previsto, ma potrà essere adottato successivamente anche una funzione di | ||
| + | range (" | ||
| + | |||
| + | Le funzioni di set andranno a sostituire il valore ove applicabile. | ||
| + | |||
| + | **//text, longtext// | ||
| + | Rappresenta un testo, in json saranno rappresentati come stringhe | ||
| + | |||
| + | per gli stessi sarà possibile specificare le seguenti proprietà: | ||
| + | |||
| + | " | ||
| + | |||
| + | " | ||
| + | |||
| + | Nota bene: nel caso sia necessario supportare dei campi testo di dimensione superiore potranno essere adottate due strategie: | ||
| + | |||
| + | salvarli come blob su disco (se non si necessita di doverli ricercare) | ||
| + | |||
| + | oppure: | ||
| + | |||
| + | creare un sotto-modello che contenga dei frammenti | ||
| + | |||
| + | Questa limitazione è inserita ad-hoc nella definizione per evitare che gli oggetti possano superare una dimensione accettabile al funzionamento ottimale delle varie tecnologie di repository oggi esistenti quali: 65535 per l' | ||
| + | |||
| + | Questa specifica non include prescrizioni particolari per imporre questa limitazione, | ||
| + | |||
| + | Le funzioni di ricerca previste per questo tipo di campo sono quelle di uguaglianza (" | ||
| + | |||
| + | In questa specifica non sono previsti, ma potranno essere adottate successivamente anche funzioni di ricerca Full-text. | ||
| + | |||
| + | Le funzioni di set andranno a sostituire il valore ove applicabile. | ||
| + | |||
| + | **// | ||
| + | Saranno equivalenti ai campi " | ||
| + | limitazioni si applicheranno al valore del singolo locale, sarà responsabilità del microservizio mapparli eventualmente su un repository monodimensionale | ||
| + | |||
| + | Le funzioni di ricerca per questo campo saranno analoghe a quelle del tipo campo " | ||
| + | * a tutti i locale | ||
| + | * solo al locale corrente | ||
| + | * solo al locale corrente o, in assenza di un valore nello stesso, a un locale di fallback specificato | ||
| + | |||
| + | Le funzioni di set andranno a sostituire il valore del locale specificato ove applicabile. | ||
| + | |||
| + | **//date, datetime, time, timerange// | ||
| + | Rappresentano unità di tempo, rappresentate in forma numerica nel seguente formato: | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | In tutto e per tutto gli stessi saranno trattati come dei campi " | ||
| + | override del valore di step per i campi date | ||
| + | Le funzioni di set andranno a sostituire il valore ove applicabile. | ||
| + | |||
| + | **//date, datetime, time, timerange// | ||
| + | Rappresentano unità di tempo, rappresentate in forma numerica nel seguente formato: | ||
| + | |||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | |||
| + | In tutto e per tutto gli stessi saranno trattati come dei campi " | ||
| + | |||
| + | Le funzioni di set andranno a sostituire il valore ove applicabile. | ||
| + | |||
| + | **// | ||
| + | Rappresenterà un campo booleano. | ||
| + | |||
| + | Lo stesso in JSON sarà rappresentabile come boolean | ||
| + | |||
| + | A livello di repository è possibile implementarlo in una serie di formati (BOOLEAN; BIT, CHAR(1), TINYINT, ...), ma è responsabilità del microservizio garantire la corretta conversione da/ | ||
| + | |||
| + | l' | ||
| + | |||
| + | Le funzioni di ricerca per questo tipo di campo sono quelle di uguaglianza (" | ||
| + | |||
| + | Le funzioni di set andranno a sostituire il valore ove applicabile. | ||
| + | |||
| + | **// | ||
| + | Rappresenta una relazione multipla tra oggetti | ||
| + | |||
| + | la stessa sarà rappresentata in json tramite un array di descrittori | ||
| + | |||
| + | la stessa sarà soggetta alla limitazione " | ||
| + | |||
| + | la stessa sarà assunta come NON-ordinata. | ||
| + | |||
| + | Le funzioni di ricerca per questo tipo di campo saranno: contiene (" | ||
| + | |||
| + | Le funzioni di set andranno a sostituire il valore ove applicabile. In una successiva revisione di questa specifica sarà possibile estenderle con funzioni integrative di aggiornamento differenziale. | ||
| + | |||
| + | === Note aggiuntive sui tipi di campo === | ||
| + | |||
| + | Non sono previsti in questa specifica campi per rappresentare liste ordinate o alberi, che potranno essere descritti tramite sottomodelli di servizio in revisioni successive. | ||
| + | |||
| + | Non sono previsti campi composti in questa specifica, ma potranno esser definiti in specifiche successive tipologie di campi che estendano le verifiche sui campi già esistenti (ad esempio: un campo tipo " | ||
| + | |||
| + | |||
| + | |||