Configurare e Avviare un Progetto LoopBack in ServBay
Cos’è LoopBack?
LoopBack è un framework open source Node.js altamente scalabile sviluppato da IBM, progettato per la rapida creazione di API e microservizi. Adotta un approccio allo sviluppo guidato dal modello (Model-Driven Development, MDD), facilitando agli sviluppatori la definizione di modelli dati e la generazione automatica di potenti API RESTful. Il framework LoopBack include funzionalità integrate come connettori per sorgenti dati, autenticazione e autorizzazione, explorer delle API, e supporta vari database e protocolli.
Caratteristiche principali e vantaggi di LoopBack
- Sviluppo guidato dal modello (MDD): Definizione intuitiva dei modelli dati con generazione automatica di endpoint API e logica di validazione.
- Supporto multi-database: Connessione semplice a database popolari (ad es. MongoDB, MySQL, PostgreSQL, MariaDB) nonché servizi RESTful e SOAP.
- Potente CLI: LoopBack CLI (Command Line Interface) offre comandi completi per facilitare l’inizializzazione del progetto, la definizione dei modelli e la configurazione delle sorgenti dati.
- Modularità ed estensibilità: Architettura flessibile che permette di integrare componenti ed estensioni di terze parti per soddisfare esigenze specifiche.
- Sicurezza integrata: Meccanismi nativi per autenticazione e autorizzazione, per costruire API sicure in modo rapido.
Grazie a LoopBack, gli sviluppatori possono aumentare significativamente l’efficienza nella creazione di backend per applicazioni web e API performanti e facilmente manutenibili.
Come Creare e Avviare un Progetto LoopBack con ServBay
Questa guida spiega come usare l’ambiente Node.js di ServBay per creare ed eseguire un progetto LoopBack. Si sfrutterà la funzione “Siti” di ServBay per configurare un web server locale e, tramite proxy inverso, indirizzare le richieste verso la porta dove il servizio LoopBack è in esecuzione. Così si rende più facile l’accesso locale e il debugging durante lo sviluppo.
Creazione di un progetto LoopBack
Installare la CLI di LoopBack
Prima di iniziare, assicurati di aver installato e abilitato il pacchetto Node.js in ServBay. Poi, apri il terminale e installa globalmente la CLI di LoopBack:
bashnpm install -g @loopback/cli
1Inizializzare il progetto
Spostati nella directory root suggerita per i siti ServBay
/Applications/ServBay/www
e usa la CLI di LoopBack per avviare un nuovo progetto. Si consiglia di usare solo lettere minuscole e trattini, ad esempioservbay-loopback-app
:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2La CLI ti guiderà tra le opzioni di configurazione (scelta delle feature come REST API, serializzazione, autenticazione, ecc.) e la struttura del progetto. Scegli in base alle tue necessità.
Installare le dipendenze del progetto
Entra nella cartella del nuovo progetto e installa le dipendenze Node.js:
bashcd servbay-loopback-app npm install
1
2
Modifica dell’output del progetto LoopBack (facoltativo)
Per mostrare come accedere all'app tramite ServBay, puoi modificare il comportamento dell’endpoint predefinito /ping
per restituire una risposta personalizzata.
Modifica del file
src/controllers/ping.controller.ts
Individua
src/controllers/ping.controller.ts
all’interno del progetto e aggiorna il contenuto come sotto, così che l’endpoint/ping
restituisca la stringa "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // Modifica la risposta a "Hello ServBay!" return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
Esecuzione del progetto in modalità sviluppo
Durante lo sviluppo, in genere si esegue il server di sviluppo integrato di LoopBack per iterazioni rapide e debugging. Ci si può collegare a questo server tramite il proxy inverso di ServBay.
Avvia il server di sviluppo
Nella root del progetto, avvia l’app LoopBack da terminale. Di default, l’applicazione ascolta sulla porta configurata. Puoi impostare la porta tramite la variabile
PORT
, ad esempio8585
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start
1
2All’avvio vedrai nel terminale un messaggio tipo "Server is running at http://[::1]:8585".
Configura il sito (Proxy inverso) in ServBay
Apri il pannello di controllo di ServBay, vai alla sezione “Siti” e premi il pulsante per aggiungere un nuovo sito proxy inverso. Inoltra richieste di un dominio e porta esterni verso l’indirizzo interno dell’app LoopBack:
- Nome: ad es.
My first LoopBack dev site
(per identificazione in ServBay) - Dominio: ad es.
servbay-loopback-dev.servbay.demo
(dominio per accesso dal browser) - Tipo sito: selezionare
Proxy inverso (Reverse Proxy)
- IP Address: inserire
127.0.0.1
(l’app LoopBack è in locale) - Porta: inserire
8585
(la porta della app LoopBack)
Dopo aver salvato e applicato, ServBay configurerà automaticamente il DNS locale (modificando
/etc/hosts
o usando ServBay Helper Tool) e il web server (Caddy o Nginx), consentendo l’accesso tramite il dominio scelto.Per dettagli su come aggiungere un sito proxy inverso in ServBay, vedi: Aggiungere siti di sviluppo Node.js.
- Nome: ad es.
Accedi all’applicazione in modalità sviluppo
Apri il browser e visita il dominio e il percorso configurato, ad esempio
https://servbay-loopback-dev.servbay.demo/ping
.ServBay configura automaticamente i certificati SSL (tramite ServBay User CA o ServBay Public CA), quindi puoi accedere in HTTPS, simulando una situazione di produzione per scoprire tempestivamente eventuali problemi legati al certificato. Ulteriori info sulla funzione SSL di ServBay nella guida: Proteggere i siti web con SSL.
Distribuzione in produzione (facoltativo)
Quando il progetto è pronto per la produzione, è consigliabile lanciarlo in modalità production per prestazioni migliori e output di log ridotto.
Avvia il server in modalità produzione
Dalla root del progetto, avvia l’app LoopBack in modalità produzione specificando la porta (es.
8586
) e impostando la variabileNODE_ENV
aproduction
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start
1
2Configura il sito (Proxy inverso) in ServBay
Torna alla sezione “Siti” del pannello ServBay e aggiungi/modifica un sito proxy inverso che punti all’istanza dell’app in produzione:
- Nome: ad es.
My first LoopBack production site
- Dominio: ad es.
servbay-loopback-prod.servbay.demo
- Tipo sito: selezionare
Proxy inverso (Reverse Proxy)
- IP Address:
127.0.0.1
- Porta:
8586
(porta modalità produzione)
Salva e applica le modifiche.
- Nome: ad es.
Accedi all’applicazione in modalità produzione
Apri il browser e visita il dominio di produzione, ad esempio
https://servbay-loopback-prod.servbay.demo/ping
, per verificare il corretto funzionamento. Anche in questo caso ServBay gestisce automaticamente il supporto HTTPS.
Connessione ai Database
LoopBack supporta numerosi database tramite connettori per sorgenti dati. ServBay offre pacchetti per MySQL, MariaDB, PostgreSQL, MongoDB e Redis. Puoi facilmente avviare questi servizi database da ServBay e configurare la connessione all’interno del tuo progetto LoopBack.
Qui trovi esempi di configurazione per i database più comuni supportati da ServBay. Personalizza in base alle tue reali esigenze.
Attenzione: Gli username e le password nei seguenti esempi sono segnaposto. Ricordati di sostituirli con le credenziali effettive configurate in ServBay per ogni database (root o altri utenti). Puoi gestire utenti e password dal pannello di controllo ServBay.
Connessione a MongoDB
Prima, assicurati che MongoDB sia installato e avviato tramite ServBay. Installa il connettore MongoDB di LoopBack:
bashnpm install --save @loopback/connector-mongodb
1Poi configura la sorgente dati (di solito in
src/datasources/mongodb.datasource.ts
):typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // MongoDB di ServBay opera di default su localhost:27017 url: 'mongodb://localhost:27017/servbay-loopback-app', // Sostituisci con il nome del tuo database host: 'localhost', port: 27017, user: '', // Se hai impostato autenticazione, inserisci username password: '', // Se hai impostato autenticazione, inserisci password database: 'servbay-loopback-app', // Sostituisci con il nome del tuo database // Altre opzioni... }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Connessione a Redis
Assicurati che Redis sia installato e in esecuzione tramite ServBay. Installa il connettore Redis per LoopBack (nota: LoopBack 4 non offre un
@loopback/connector-redis
ufficiale; si usano comunementeloopback-connector-redis
della community o la libreriaredis
per Node.js combinata col concetto di servizio):bashnpm install --save loopback-connector-redis # oppure altre librerie Redis compatibili
1Poi configura la sorgente dati (in stile
loopback-connector-redis
):typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // Redis di ServBay su localhost:6379 url: 'redis://localhost:6379', // Altre opzioni... }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Nota: Con LoopBack 4 si consiglia di usare il decoratore
@datasource
e la configurazione moderna fornita da@loopback/repository
. Tuttavia, i parametri comehost
,port
,user
,password
,database
rimangono validi.Connessione a MariaDB (o MySQL)
Assicurati che MariaDB o MySQL siano installati e attivi tramite ServBay. LoopBack utilizza normalmente il connettore MySQL, compatibile anche con MariaDB. Installa il connettore MySQL:
bashnpm install --save @loopback/connector-mysql
1Poi configura la sorgente dati:
typescript// src/datasources/mariadb.datasource.ts o mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // oppure 'mysql' connector: 'mysql', // utilizza il connettore mysql // url: '', // puoi usare una url o configurare host, port e database separatamente host: 'localhost', // Database ServBay in ascolto su localhost port: 3306, // Porta di default MariaDB/MySQL user: 'root', // Utente di default ServBay MariaDB/MySQL password: 'password', // << Sostituisci con la password effettiva impostata in ServBay >> database: 'servbay_loopback_app', // Sostituisci con il nome del tuo database // Altre opzioni... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // oppure 'mysql' constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Nota:
password: 'password'
è un segnaposto. Usa la password reale del database root configurata tramite il pannello di ServBay.Connessione a PostgreSQL
Assicurati che PostgreSQL sia installato e funzionante tramite ServBay. Installa il connettore PostgreSQL per LoopBack:
bashnpm install --save @loopback/connector-postgresql
1Quindi configura la sorgente dati:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // puoi usare una url o parametrizzare singolarmente host, port, database host: 'localhost', // PostgreSQL di ServBay in locale port: 5432, // Porta di default PostgreSQL user: 'user', // << Sostituisci con il nome utente impostato in ServBay >> password: 'password', // << Sostituisci con la password effettiva impostata in ServBay >> database: 'servbay_loopback_app', // Sostituisci con il nome del tuo database // Altre opzioni... }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Nota:
user: 'user'
epassword: 'password'
sono segnaposto. Imposta utente e password reali tramite il pannello ServBay e inseriscili nella configurazione.
Conclusione
Seguendo questi passaggi sarai in grado di creare, configurare e avviare con successo un progetto LoopBack Node.js nell’ambiente di sviluppo locale ServBay. Hai imparato come sfruttare la funzione “Siti” di ServBay per accedere tramite proxy inverso all’applicazione e come configurare LoopBack per collegarsi rapidamente ai più comuni database supportati da ServBay.
ServBay offre agli sviluppatori un ambiente locale stabile e flessibile per framework Node.js come LoopBack, integrando server web, database e numerosi runtime di linguaggi. Grazie alla gestione dei siti, al supporto SSL e all’integrazione nativa dei database, puoi sviluppare e testare in modo più efficiente e sicuro sul tuo Mac.