Come costruire un backend per Elixir?
In questo tutorial, imparerai come costruire un backend per Elixir utilizzando Back4App.
Esploreremo l'integrazione delle funzionalità essenziali di Back4App—come la gestione del database, le Funzioni Cloud Code, le API REST e GraphQL, l'autenticazione degli utenti e le query in tempo reale (Live Queries)—per creare un backend sicuro, scalabile e robusto.
Elixir, che gira sulla VM Erlang (BEAM) e sfrutta OTP (Erlang OTP), è noto per il suo ambiente tollerante ai guasti e concorrente, che si abbina bene a Back4App per formare un'infrastruttura moderna e ad alte prestazioni.
Vedrai come la rapida configurazione di Back4App e l'ambiente intuitivo possano ridurre drasticamente il tuo tempo e sforzo rispetto alla configurazione manuale di server e database.
Questo include l'utilizzo del pattern matching, oltre a collegarsi al framework web di scelta di Elixir.
Alla fine di questo tutorial, avrai una solida base che potrai estendere in un'applicazione pronta per la produzione o migliorare con logica personalizzata e API di terze parti.
Per completare questo tutorial, avrai bisogno di:
- Un account Back4App e un nuovo progetto Back4App Iniziare con Back4app. Se non hai un account, puoi crearne uno gratuitamente. Segui la guida sopra per preparare il tuo progetto.
- Ambiente di sviluppo Elixir di base Assicurati di avere Elixir installato sul tuo computer. Se prevedi di utilizzare un framework web come Phoenix, consulta la guida all'installazione di Phoenix per riferimento.
- Familiarità con i concetti di Elixir Documentazione ufficiale di Elixir. Se sei nuovo in Elixir, rivedi queste risorse o un tutorial per principianti prima di iniziare.
Assicurati di avere tutti questi prerequisiti in atto prima di iniziare. Avere il tuo progetto Back4App configurato e il tuo ambiente Elixir locale pronto ti aiuterà a seguire più agevolmente.
Il primo passo in come costruire un backend per Elixir su Back4App è creare un nuovo progetto. Se non ne hai già creato uno, segui questi passaggi:
- Accedi al tuo account Back4app.
- Clicca sul pulsante “Nuova App” nel tuo dashboard di Back4App.
- Dai un nome alla tua app (ad esempio, “Elixir-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Una volta creato il progetto, lo vedrai elencato nel tuo dashboard di Back4App. Questo progetto sarà la base per tutte le configurazioni del backend discusse in questo tutorial.
Back4App utilizza la piattaforma Parse come base. Per Elixir, al momento non esiste un SDK ufficiale di Parse. Invece, puoi facilmente connetterti a Back4App utilizzando le API REST o GraphQL. Nel tuo progetto Elixir, dovrai:
- Recupera il tuo Application ID e REST o GraphQL Keys dalla sezione “App Settings” o “Security & Keys” nel dashboard di Back4App.
Ad esempio, per memorizzare le credenziali in un file di configurazione (config/dev.exs o simile):
Puoi quindi fare riferimento a queste credenziali nel tuo codice per effettuare chiamate REST. In tutta questa guida, mostreremo come interagire con il database di Back4App, il sistema utente e altre funzionalità utilizzando richieste standard HTTP o GraphQL.
In Back4App, i dati sono memorizzati in classi. Puoi creare una nuova classe nel dashboard di Back4App:
- Naviga nella sezione “Database” nel tuo dashboard di Back4App.
- Crea una nuova classe (ad esempio, “Todo”) e aggiungi colonne pertinenti, come titolo (String) e isCompleted (Boolean).
![Crea Nuova Classe Crea Nuova Classe](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4App fornisce anche un Agente AI per aiutarti a descrivere e creare il tuo modello di dati:
- Apri l'Agente AI dal tuo App Dashboard o dal menu.
- Descrivi il tuo modello di dati in linguaggio semplice (ad esempio, “Per favore, crea una nuova App Todo con uno schema di classe completo.”).
- Lascia che l'Agente AI crei lo schema automaticamente.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Poiché Elixir non ha un SDK Parse ufficiale, salteremo l'uso diretto dell'SDK. Invece, mostreremo REST, GraphQL, e Live Queries approcci qui sotto.
Installa un client HTTP come HTTPoison nel tuo mix.exs:
Poi, esegui mix deps.get.
Per creare (salvare) un oggetto Todo dalla tua applicazione Elixir:
E per interrogare i tuoi oggetti Todo:
Puoi anche interagire tramite GraphQL. Ad esempio, creando un Todo:
In Elixir, potresti inviare questo anche con un client HTTP:
Per aggiornamenti in tempo reale, Back4App offre Live Queries. Puoi abilitare le Live Queries nelle Impostazioni del Server. Poiché attualmente non esiste una libreria client Parse nativa per Elixir, di solito ti connetteresti tramite un canale Phoenix o qualsiasi client WebSocket personalizzato all'endpoint fornito wss://YOUR_SUBDOMAIN_HERE.b4a.io. Questo può essere più avanzato, richiedendo codifica personalizzata per gestire abbonamenti, messaggi, ecc.
Back4App offre Liste di Controllo degli Accessi (ACL) e Permessi a Livello di Classe (CLP) per proteggere e gestire l'accesso ai dati. Le ACL si applicano a singoli oggetti, mentre i CLP si applicano all'intera classe.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Permessi a Livello di Classe (CLP): Nel tuo Dashboard di Back4App, sotto Database, seleziona una classe (ad esempio, “Todo”) e apri la scheda Permessi a Livello di Classe. Regola le impostazioni (ad esempio, “Richiede Autenticazione” o “Nessun Accesso” per il pubblico).
- Configura ACL: Quando crei o aggiorni un oggetto, puoi inviare i dati ACL nella tua richiesta REST o GraphQL. Ad esempio, specifica il _ACL campo in JSON se hai bisogno di un controllo dettagliato per oggetto.
![Modifica ACL Modifica ACL](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
Per ulteriori informazioni, visita le Linee Guida sulla Sicurezza dell'App.
Il Cloud Code ti consente di eseguire logica lato server senza gestire i tuoi server. Con Elixir, di solito ti affidi a OTP per la concorrenza, ma qui puoi semplicemente creare Cloud Code in JavaScript in Back4App per gestire la convalida, i trigger o la logica aziendale personalizzata. Questo codice viene eseguito su Parse Server, quindi puoi mantenere il tuo codice Elixir focalizzato su attività client o microservizi mentre il lavoro pesante avviene nel Cloud Code.
Nel tuo main.js nel Dashboard di Back4App o utilizzando la CLI:
Distribuisci tramite il Back4app CLI o incollando nel dashboard sotto Cloud Code > Funzioni e cliccando Distribuisci.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Da Elixir, potresti usare:
Back4App utilizza la classe User per l'autenticazione. Puoi gestire facilmente la registrazione, il login e il ripristino della password. Da Elixir, di solito utilizzerai chiamate REST:
Back4App supporta l'integrazione con Google, Apple, Facebook e altro ancora. Nella maggior parte dei casi, indirizzerai gli utenti al flusso OAuth, quindi utilizzerai i token restituiti da questi fornitori per completare il login di Parse. Vedi Documentazione Accesso Sociale per dettagli.
Back4App memorizza i file in modo sicuro. Da Elixir, puoi caricare file tramite REST:
Riceverai una risposta JSON con l'URL del file, che puoi memorizzare in una classe (ad esempio, Foto) per riferimento.
Puoi configurare chi può caricare file nelle impostazioni fileUpload del tuo progetto Back4App, limitando i caricamenti agli utenti autenticati se desiderato.
La verifica dell'email assicura che gli utenti possiedano l'indirizzo email utilizzato durante la registrazione. Il ripristino della password consente loro di recuperare gli account in modo sicuro. Entrambe le funzionalità sono integrate in Back4App.
- Abilita la verifica dell'email nelle “Impostazioni App” o “Autenticazione” della tua app.
- Configura il Indirizzo del mittente e i modelli di email.
- Abilita il ripristino della password per consentire agli utenti di reimpostare tramite un link inviato via email.
Una volta abilitato nel dashboard, puoi attivare i ripristini della password:
I lavori nel cloud ti permettono di automatizzare compiti di routine come la pulizia dei dati obsoleti o l'invio di email periodiche. Li scrivi in Cloud Code.
- Distribuisci il codice.
- Vai al Dashboard di Back4app > Impostazioni App > Impostazioni Server > Lavori in Background.
- Pianifica il lavoro per essere eseguito quotidianamente o con una frequenza a tua scelta.
![Pianificazione di un lavoro nel cloud Pianificazione di un lavoro nel cloud](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
I Webhook consentono alla tua applicazione Back4App di inviare richieste HTTP a un servizio esterno (ad esempio, un canale Slack o Stripe) quando si verificano determinati eventi.
- Naviga alla configurazione dei Webhook nel tuo dashboard di Back4App > Altro > Webhook.
- Imposta l'endpoint (ad esempio, https://your-service.com/webhook-endpoint).
- Configura i trigger come “Nuovo record nella classe Todo.”
![Aggiunta di un Webhook Aggiunta di un Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Se desideri inviare dati a Slack ogni volta che viene creato un Todo, puoi aggiungere un nuovo webhook che punta al tuo URL del webhook in entrata di Slack. Puoi anche definire i Webhook nel Cloud Code inviando richieste HTTP personalizzate in trigger come afterSave.
![Webhook BeforeSave Webhook BeforeSave](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
L' App di Amministrazione di Back4app è un'interfaccia user-friendly per gestire i tuoi dati. Puoi attivarla da App Dashboard > Altro > App di Amministrazione.
![Abilita l'App di Amministrazione Abilita l'App di Amministrazione](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
- Crea un Primo Utente Amministratore, che imposta il ruolo di B4aAdminUser e classi aggiuntive.
- Assegna un Sottodominio per accedere all'interfaccia di amministrazione.
- Accedi per visualizzare e gestire i dati in un'interfaccia semplice.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
Seguendo questo tutorial su come costruire un backend per Elixir con Back4App, hai:
- Creato un backend sicuro sulla piattaforma di Back4App utilizzando Elixir per l'integrazione.
- Impostato un database con classi, tipi di dati e relazioni.
- Utilizzato REST/GraphQL per interagire con i tuoi dati da Elixir.
- Applicato la sicurezza utilizzando ACL e CLP.
- Aggiunto logica personalizzata con funzioni di Cloud Code.
- Configurato l'autenticazione degli utenti con verifica email e reset della password.
- Gestito lo storage dei file e il recupero.
- Pianificato lavori in background per l'automazione.
- Integrato servizi esterni con webhook.
- Esplorato il Pannello di Amministrazione di Back4App per una facile gestione dei dati.
Con il modello di concorrenza di Elixir (alimentato dal VM Erlang) e OTP, combinato con i servizi scalabili e flessibili di Back4App, puoi costruire backend altamente robusti.
Continua a esplorare funzionalità più avanzate, integra la tua logica aziendale e lascia che Back4App ti aiuti a gestire il lavoro pesante.
- Costruisci un'app Elixir pronta per la produzione sovrapponendo questo backend con il tuo framework web Elixir/Phoenix preferito.
- Integra funzionalità avanzate come il controllo degli accessi basato sui ruoli o API di terze parti (gateway di pagamento, servizi di messaggistica).
- Esplora la documentazione ufficiale di Back4app per sicurezza avanzata, registri, ottimizzazione delle prestazioni e altro.
- Dai un'occhiata ad altri tutorial per app in tempo reale, dashboard IoT o servizi basati sulla posizione. Con il pattern matching e la concorrenza OTP a tua disposizione, sei pronto ad affrontare una vasta gamma di applicazioni!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)