Passa al contenuto principale

Funzionamento generale

L'applicativo è composto da due blocchi principali:

  • Frontend Blazor .NET9
  • API .NET9

Le API si collegano ad Imagonist tramite API REST e manipolano gli oggetti per estrarre solo il necessario per il frontend. Si occupano inoltre di fornire i contenuti di configurazione di ogni istanza salvati nel database Redis.

Indicazioni generiche

  • Tutti i testi e i contenuti sono configurati nel Redis o presi dal menu Imagonist: per i primi è possibile localizzarne l’origine ispezionando l’HTML e leggendo il contenuto dell’attributo data-sectionfield.
  • Tutte le proprietà nei JSON di configurazione sono scritte con convenzione di nomenclatura camelCase.
  • Le chiavi del DB Redis sono scritte con convenzione di nomenclatura snake_case.
  • Per le principali immagini dei prodotti viene inserita un’immagine di placeholder se l’immagine ricevuta è mancante oppure non valida: è possibile trovare l’indirizzo dell’immagine originale ispezionando l’HTML e leggendo il contenuto dell’attributo data-originalSrc.

Impostazioni base

Perché il sistema funzioni occorrono due configurazioni generiche fondamentali, che vanno inserite nel database 0 di Redis.


Tenants

Contiene gli indirizzi e i nomi delle istanze configurate, in modo da personalizzare il frontend in base all’URL di provenienza delle chiamate.

Descrizione campi

CampoDescrizioneTipo
ididentificativo univoco del tenantguid / uniqueidentifier
slugidentificativo human readable del tenant, usato per strutturare il db Redisstringa
nameetichetta descrittiva del tenant, viene inserita nel titolo della paginastringa
urlIndirizzo URL di base dell'istanzastringa
iconUrlURL immagine faviconstringa

JSON di esempio

[
{
"id": "d44fbcdd-a03f-4664-93b8-fc2336f8bc88",
"name": "ImagonistShop Debug",
"slug": "imagonist-shop-debug",
"url": "https://localhost:7285",
"iconUrl": "https://icon.png"
},
{
"id": "a894911b-65e8-4388-a997-a91a25767eb5",
"name": "Test",
"slug": "imagonist-shop-test",
"url": "https://imagonistshop.3sd.dev",
"iconUrl": "https://icon.png"
},
{
"id": "3b46751f-2acf-4fcd-bbeb-6cfd4676fd6",
"name": "Production",
"slug": "imagonist-shop",
"url": "https://imagonistshop.timeware.it",
"iconUrl": "https://icon.png"
},
{
"id": "dcb295d9-8266-44f1-b30a-01c787ce2732",
"name": "ECommerce",
"slug": "ecommerce",
"url": "https://ecommerce.3sd.dev",
"iconUrl": "https://icon.svg"
}
]

Cultures

Contiene le lingue di sistema disponibili.

Descrizione campi

CampoDescrizioneTipo
slugidentificativo ISO 2 caratteristringa
cultureInfoCodecodice ISO 3166-1 alpha-2stringa
labeletichettastringa
numberGroupSeparatorseparatore di migliaiastringa
currencyGroupSeparatorseparatore di migliaia per le valutestring
isDefaultindica la lingua da usare di default in caso non sia specificata in ingressobooleano

JSON di esempio

[
{
"slug": "it",
"cultureInfoCode": "it-IT",
"label": "Italiano",
"numberGroupSeparator": ".",
"currencyGroupSeparator": ".",
"isDefault": true
},
{
"slug": "en",
"cultureInfoCode": "en-US",
"label": "English",
"numberGroupSeparator": ",",
"currencyGroupSeparator": ","
}
]