5.1. Raccomandazioni sul formato dei dati¶
5.1.1. [RAC_REST_FORMAT_001] Utilizzo oggetti JSON¶
Nella tecnologia REST la comunicazione DOVREBBE avvenire tramite oggetti JSON RFC 8259 con il relativo media-type application/json.
È possibile fare eccezione in presenza di specifiche in cui gli oggetti di comunicazione sono formalizzati in forma diversa da JSON (es. INSPIRE, HL7).
5.1.2. [RAC_REST_FORMAT_002] Codificare dati strutturati con oggetti JSON¶
I dati strutturati in formato JSON RFC 8259 DOVREBBERO essere trasferiti tramite oggetti, in modo da permettere l’estensione retrocompatibile della response con ulteriori attributi, ad esempio paginazione.
Cioè:
- il payload di una response contenente una entry ritorna un oggetto
 
{
        "given_name": "Paolo",
        "last_name": "Rossi",
        "id": 313
}
- il payload di una response contenente più entry ritorna un oggetto contenente una lista e non direttamente una lista.
 
{
        "items": [
                {
                        "given_name": "Carlo",
                        "family_name": "Bianchi",
                        "id": 314
                },
                {
                        "given_name": "Giuseppe",
                        "family_name": "Verdi",
                        "id": 315
                }
        ]
}
5.1.3. [RAC_REST_FORMAT_003] Convenzioni di rappresentazione¶
DEVONO usarsi le seguenti convenzioni di rappresentazione:
- I booleani non DEVONO essere null.
 - Gli array vuoti non DEVONO essere null, ma liste vuote, ad es. [].
 - Le enumeration DEVONO essere rappresentate da stringhe non nulle.
 
5.1.4. [RAC_REST_FORMAT_004] Definire format quando si usano i tipi Number ed Integer¶
I numeri e gli interi DEVONO indicare la dimensione utilizzando il parametro format.
La seguente tabella - non esaustiva - elenca un set minimo di formati.
| TYPE | FORMAT | VALORI AMMESSI | 
|---|---|---|
| integer | int32 | interi tra -2^31 e 2^31-1 | 
| integer | int64 | interi tra -2^63 e 2^63-1 | 
| number | decimal32 / float | IEEE 754-2008/IS 60559:2011 decimale a 32 bit | 
| number | decimal64 / double | IEEE 754-2008/IS 60559:2011 decimale a 64 bit | 
| number | decimal128 | IEEE 754-2008/IS 60559:2011 decimale a 128 bit | 
Le implementazioni DEVONO utilizzare il tipo più adatto.
5.1.5. [RAC_REST_FORMAT_005] Usare link relations registrate¶
DEVONO usarsi le specifiche indicate in IANA registered link relations [1] per rappresentare link e riferimenti a risorse HTTP esterne.
| [1] | Cfr. https://www.iana.org/assignments/link-relations/link-relations.xhtml |