Server
Sviluppo del backend e API.
Cartella del Server
La cartella 📂 server contiene un insieme di file e cartelle che formano il backend dell'applicazione.
Tutto ciò che si trova nella cartella 📂 server viene utilizzato nell'elaborazione del server backend, come integrazioni, API,
database, sicurezza e autenticazione, Cron Jobs, tra molti altri.
Struttura della Cartella
Nella cartella 📂 server si trova la seguente struttura:
./server/ ├─ ./actions/ ├─ ./components/ ├─ ./core/ │ ├─ ./_config.js │ ├─ ./_init.js │ ├─ ./_request_close.js │ ├─ ./_request_end.js │ ├─ ./_request_error.js │ ├─ ./_request_start.js │ ├─ ./_request_url.js │ ├─ ./_service_config.js │ ├─ ./_service_end.js │ ├─ ./_service_error.js │ └─ ./_service_start.js ├─ ./reports/ ├─ ./services/ ├─ ./setup/ │ ├─ ./_end.js │ └─ ./_start.js └─ ./templates/ ├─ ./_/ ├─ ./dev/ │ └─ ./dashboard.html ├─ ./dashboard.html ├─ ./scripts.html ├─ ./scripts_dev.html ├─ ./scripts_login.html ├─ ./styles.html ├─ ./styles_dev.html └─ ./styles_login.html
Actions
Nella cartella 📂 actions possono essere aggiunte azioni personalizzate su misura (hooks) nelle operazioni CRUD dei moduli
generati automaticamente per il backoffice; in base alla struttura dei dati, qui può essere fatto molto intervento sui dati.
Ad esempio, quando si rimuove un cliente è necessario rimuovere tutti i suoi ordini, oppure quando si crea un nuovo prodotto deve essere integrato con un altro sistema. In breve, qualsiasi sviluppo direttamente correlato ai dati può essere fatto qui.
Le actions sono ispirate ai triggers del database, ma a livello di esecuzione del codice.
Pertanto è possibile programmare operazioni specifiche nella creazione, modifica e rimozione dei dati.
Components
I 📂 components sono utilizzati per definire tipi personalizzati di campi nei moduli del backoffice, che
possono eseguire la propria manipolazione dei dati.
Possono essere creati componenti tramite script per fornire un nuovo tipo di campo specifico nell'applicazione.
Core
La cartella 📂 core consente l'iniezione di codice nel flusso di elaborazione delle richieste HTTP.
È anche utilizzata per condividere codice tra i vari servizi e altro.
Il file _config.js viene eseguito dopo che la configurazione è stata caricata in ogni richiesta HTTP, viene eseguito dopo lo script di
configurazione dell'ambiente che si trova nella cartella 📂 config dell'applicazione.
Il file _init.js serve a iniettare qualche istruzione quando l'applicazione viene inizializzata per la prima volta.
Elaborazione delle richieste HTTP
Nel flusso di elaborazione delle richieste HTTP per qualsiasi URL dell'applicazione vengono eseguiti i rispettivi script:
_request_start.jsviene eseguito quando la richiesta HTTP arriva al server di Netuno._request_url.jsviene eseguito quando l'URL viene elaborato da Netuno; l'URL può essere modificato verso un'altra destinazione._request_close.jsviene eseguito quando la risposta alla richiesta HTTP viene chiusa._request_end.jsviene eseguito quando la richiesta HTTP è conclusa definitivamente._request_error.jsviene eseguito quando si verifica un errore nell'elaborazione della richiesta HTTP.
Elaborazione dei Servizi API
Nel flusso di elaborazione di qualsiasi servizio API dell'applicazione vengono eseguiti i seguenti script:
_service_config.jsviene eseguito prima di iniziare l'esecuzione del servizio; serve a definire le configurazioni di esecuzione del servizio, tra le altre cose. Si può definire se il servizio può o non può essere eseguito, ovvero un controllo di sicurezza nell'accesso al servizio API._service_start.jsviene eseguito non appena un servizio inizia a essere elaborato._service_end.jsviene eseguito dopo che è terminata l'elaborazione di un servizio._service_error.jsviene eseguito quando si verifica un errore nell'elaborazione di un servizio.
Services - API
È nella cartella 📂 services che vengono creati i servizi che formano l'API applicativa.
I servizi possono essere scritti in diversi linguaggi: JavaScript, Python, Java, Kotlin, Ruby o Groovy.
Poiché Netuno è poliglotta, qualsiasi file di script può essere modificato per un altro linguaggio di programmazione supportato; basta avere l'estensione dei file in base al linguaggio.
Non sono necessarie configurazioni aggiuntive in funzione del linguaggio di programmazione utilizzato; basta creare il file del servizio con l'estensione corretta corrispondente al linguaggio di programmazione.
Setup
Nella cartella 📂 setup si trova il codice generato automaticamente dal motore di Netuno che definisce gli schemi del
database, ed è anche dove possiamo inserire il caricamento dei dati essenziale per il funzionamento
dell'applicazione.
Lo script _start.js viene eseguito prima di iniziare l'elaborazione di costruzione del database.
Lo script _end.js viene eseguito dopo che l'elaborazione di costruzione del database è terminata.
In base alla costruzione della struttura dei dati, Netuno crea qui nella cartella 📂 setup automaticamente il codice
necessario affinché tutta la struttura dei dati venga ricreata in un nuovo database, o per ricreare qualcosa che manca in
un altro database in cui l'applicazione venga eventualmente eseguita.
Templates
La cartella 📂 templates contiene il contenuto HTML delle pagine di backoffice dell'applicazione, generate dal server
di Netuno.
Nella cartella 📂 dev è contenuto il file dashboard.html che consente la modifica dell'area di lavoro nella modalità di
costruzione dello sviluppatore.
Il file dashboard.html che si trova nella radice dei template contiene l'HTML dell'area di lavoro generale del backoffice.
Template Nativi
Nella cartella 📂 _ qualsiasi template generale può essere sostituito, ovvero i template predefiniti di Netuno possono essere
modificati.
Se il nome delle cartelle e/o dei file coincide con quello dei template nativi all'interno di questa cartella, allora viene utilizzato il template che si trova in questa cartella invece del template nativo.
Ovvero, basta replicare la stessa struttura del template nativo all'interno della cartella 📂 _ per sostituirlo.
Scripts
I template di script iniettano file di codice JavaScript alla fine delle pagine con il seguente scopo:
scripts.htmlaggiungere codice JavaScript alla fine della pagina di backoffice.scripts_dev.htmlaggiungere codice JavaScript alla fine della pagina dell'area di costruzione dello sviluppatore.scripts_login.htmlaggiungere codice JavaScript alla fine della pagina di login.
Styles
I template di stili iniettano file di stili all'inizio delle pagine con il seguente scopo:
styles.htmlaggiungere codice CSS all'inizio della pagina di backoffice.styles_dev.htmlaggiungere codice CSS all'inizio della pagina dell'area di costruzione dello sviluppatore.styles_login.htmlaggiungere codice CSS all'inizio della pagina di login.