Vai al contenuto principale
Lo sviluppo locale ti consente di eseguire il tuo progetto backend sulla tua macchina in modo da testare le modifiche istantaneamente, ispezionare i dati senza impattare la produzione e individuare problemi prima della distribuzione. Consulta Configurazione per i prerequisiti e le istruzioni passo passo.

Cosa viene eseguito in locale

Il dev server gestisce interamente queste funzionalità sulla tua macchina:
  • Funzioni: le funzioni backend vengono eseguite in locale con ricarica automatica alle modifiche dei file.
  • Entità: i dati delle entità vengono archiviati in un database locale in memoria. Le modifiche allo schema vengono rilevate automaticamente.
  • Media: i caricamenti di file vengono salvati in locale.
  • Autenticazione: registrazione e login con email/password funzionano in locale.
Le automazioni delle funzioni non vengono eseguite in locale.

Cosa viene inoltrato

Alcune funzionalità non sono ancora gestite in locale. Quando il dev server riceve una richiesta che non può servire, la inoltra alla tua app distribuita in modo che la chiamata funzioni comunque. Il server registra un avviso ogni volta che questo accade. Le funzionalità inoltrate includono:
  • Autenticazione: i percorsi OAuth e di social login vengono reindirizzati a Base44 in modo che i cookie di sessione funzionino correttamente. L’autenticazione email/password viene eseguita in locale.
  • Integrazioni core: endpoint come SendEmail o la generazione IA vengono inoltrati. I caricamenti di file sono l’eccezione ed eseguiti in locale.
  • Integrazioni personalizzate: chiamate API configurate tramite specifiche OpenAPI.
Questo significa che la tua app continua a funzionare end-to-end durante lo sviluppo. Le funzionalità eseguite in locale usano dati locali e tutto il resto usa la produzione.

Funzioni

Le funzioni backend vengono eseguite in locale sulla tua macchina. Puoi chiamarle dal tuo frontend proprio come le funzioni distribuite.
  • Ogni funzione viene eseguita come processo Deno separato, che deve essere installato separatamente.
  • Le funzioni vengono ricaricate automaticamente quando modifichi il codice sorgente.
  • L’output delle funzioni viene stampato direttamente nel tuo terminale. Non è necessario usare base44 logs durante lo sviluppo locale.
Quando una richiesta raggiunge il dev server e viene inoltrata alla tua funzione Deno locale, il server può aggiungere o normalizzare le intestazioni in modo che la tua funzione veda la stessa forma di contesto della produzione:
  • Base44-App-Id: impostato dall’intestazione X-App-Id in ingresso quando presente.
  • Base44-Service-Authorization: impostato dall’intestazione Authorization in ingresso quando presente, in modo che il codice che legge l’intestazione di autorizzazione del servizio in locale corrisponda al comportamento distribuito.
  • Base44-Api-Url: impostato all’URL di base del tuo dev server (schema e host), in modo che le funzioni possano costruire callback o URL assoluti verso il server locale.
L’intestazione Authorization originale viene comunque inoltrata invariata.
La prima richiesta a una funzione può essere più lenta perché il dev server avvia il processo su richiesta. Le richieste successive riutilizzano il processo in esecuzione.

Entità

Le operazioni sulle entità vanno a un database locale in memoria invece che al database remoto. Questo ti consente di creare, leggere, aggiornare ed eliminare record senza impattare i dati di produzione.
  • Tutti i dati sono archiviati in memoria e vengono cancellati quando arresti il dev server.
  • Le modifiche allo schema vengono rilevate automaticamente. Modificare uno schema di entità cancella tutti i dati in memoria per quell’entità.
  • Le sottoscrizioni realtime funzionano in locale. Se il tuo frontend usa entities.subscribe(), riceve eventi per le modifiche alle entità locali.
  • L’entità User viene eseguita in locale. All’avvio, il dev server crea un singolo record utente usando le credenziali CLI autenticate. Le operazioni di lettura e aggiornamento su me funzionano come in produzione. Le richieste di creare o eliminare utenti vengono ignorate silenziosamente, in linea con il comportamento di produzione in cui la gestione diretta degli utenti non è consentita.

Media

I caricamenti di file vengono gestiti in locale in modo da poter testare le funzionalità multimediali senza caricare nello storage di produzione. I file vengono salvati in una directory temporanea e ripuliti all’arresto del dev server. La dimensione massima del file è 50 MB.

Autenticazione

Registrazione e login con email/password vengono eseguiti in locale quando la tua app usa il sistema di autenticazione integrato. I percorsi OAuth e di social login vengono reindirizzati a Base44. Per registrare un nuovo utente durante lo sviluppo usando l’autenticazione email/password:
  1. Chiama l’endpoint di registrazione. Il dev server stampa un codice di verifica monouso nel tuo terminale invece di inviare un’email.
  2. Invia il codice all’endpoint verify-OTP per confermare l’indirizzo e creare l’utente.
  3. Accedi con l’email e la password registrate.
Il tuo account sviluppatore (l’email che hai usato per base44 login) può accedere con qualsiasi password, senza registrazione.
I token emessi dal dev server locale sono validi solo in locale. Sono firmati con un segreto diverso rispetto alla produzione, quindi la tua app distribuita li rifiuterà. Quando passi dallo sviluppo locale alla tua app distribuita, esci prima dalla tua sessione locale o elimina i token dall’archiviazione del tuo browser locale. Poi, effettua nuovamente l’accesso tramite l’app distribuita per ottenere un token valido.

Vedi anche

Questa pagina è stata tradotta utilizzando l’IA. Per informazioni più accurate e aggiornate, consulta la versione inglese.