Universal Web Platform · Formato e trasporto

Formato e trasporto: HTTP, gzip, JSON e XML

Richiesta e risposta viaggiano come testo UTF-8 compresso gzip, senza altre codifiche. Il formato del testo è JSON o XML, scelto con il parametro serialize.

La chiamata HTTP

ElementoValore
MetodoPOST
Corpola richiesta serializzata in UTF-8 e compressa gzip, così com'è (niente Base64, niente form)
Content-Typeapplication/octet-stream
Content-Encodinggzip
Accept-Encodinggzip
RispostaUTF-8 compresso gzip, con Content-Encoding: gzip e Content-Type application/json; charset=utf-8 oppure application/xml; charset=utf-8
Tempo massimole letture grandi possono durare: imposta un timeout ampio, nell'ordine dei minuti (la libreria .NET usa 6.000 secondi)

Il server riconosce il gzip dai primi due byte (1F 8B). Se un proxy ha già decompresso il corpo, il testo in chiaro viene accettato lo stesso; è una tolleranza, non un'alternativa: invia sempre il corpo compresso. Molte librerie HTTP decomprimono la risposta da sole quando vedono Content-Encoding: gzip; se la tua non lo fa, decomprimila tu.

Regole del JSON

ElementoRegola
Nomi dei campiGli stessi nomi delle proprietà delle classi (DataOperation, ObjectListProduct, Codice...). In lettura maiuscole e minuscole non contano; i campi sconosciuti vengono ignorati.
Campi omessiAssumono il valore predefinito della classe, indicato in ogni pagina dei tipi. Attenzione: in un aggiornamento un campo omesso sovrascrive il valore salvato con il predefinito.
EnumerazioniIl server le scrive come numeri ("TypeObject": 19). In invio sono accettati sia il numero sia il nome ("TypeObject": "PRODUCT").
DateISO 8601, come "2026-03-15T00:00:00". Il server scrive il formato esteso 2026-03-15T00:00:00.0000000. La data vuota è 0001-01-01T00:00:00.
Numeri decimaliCon il punto: 12.5. Mai la virgola, mai tra virgolette.
Booleanitrue / false.
Valori nullAmmessi per oggetti ed elenchi; per i testi è meglio la stringa vuota.
CaratteriScrivi accenti e simboli direttamente in UTF-8. Le entità numeriche XML (&#x...;) vengono rimosse prima di interpretare la richiesta.
ObjectListNella risposta JSON può comparire anche ObjectList, che ripete la lista del tipo richiesto: puoi ignorarlo. In invio non usarlo: compila la lista tipizzata, per esempio ObjectListBrand.

Regole dell'XML

L'XML è quello standard del serializzatore .NET: l'elemento radice è <WebServiceRequest>, ogni proprietà è un elemento con lo stesso nome, le liste contengono un elemento per record con il nome della classe, le enumerazioni si scrivono per nome (<TypeObject>BRAND</TypeObject>), le date in ISO 8601, i decimali con il punto, i booleani true/false.

XML · un marchio
<?xml version="1.0" encoding="utf-8"?>
<WebServiceRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <DataOperation>INSERTORMODIFY</DataOperation>
  <SQLFilter />
  <GuidPC>gestionale-01</GuidPC>
  <TypeObject>BRAND</TypeObject>
  <AllInsert>false</AllInsert>
  <ObjectListBrand>
    <Brand>
      <Codice>ACME</Codice>
      <Descrizione>Acme</Descrizione>
      <DescrizioneDettagliata />
      <SitoWEB>https://www.example.com</SitoWEB>
      <Obsoleto>false</Obsoleto>
      <Ordinamento>10</Ordinamento>
    </Brand>
  </ObjectListBrand>
</WebServiceRequest>
JSON · la stessa richiesta
{
  "DataOperation": 0,
  "SQLFilter": "",
  "GuidPC": "gestionale-01",
  "TypeObject": 0,
  "AllInsert": false,
  "ObjectListBrand": [
    { "Codice": "ACME", "Descrizione": "Acme", "SitoWEB": "https://www.example.com", "Obsoleto": false, "Ordinamento": 10 }
  ]
}