Quickstarters
Feature Overview
Come costruire un backend per Ruby?
35 min
introduzione in questo tutorial, scoprirai come costruire un backend per ruby utilizzando back4app esploreremo le 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) sfruttando il linguaggio di programmazione ruby e back4app, ottieni un backend sicuro, scalabile e robusto che si integra facilmente con il tuo ecosistema di sviluppo software questo approccio ti fa risparmiare tempo e sforzi utilizzando una piattaforma web open source costruita su parse vedrai come accelerare i progetti di sviluppo con principi di sviluppo rapido durante il percorso, imparerai a utilizzare funzionalità di sicurezza avanzate, pianificare attività con cloud jobs e impostare webhook per integrazioni esterne alla fine, sarai pronto a creare una struttura di framework per applicazioni web e ad espanderla per applicazioni in produzione sarai in grado di integrare ruby con back4app per modelli di dati, logica orientata agli oggetti e dati in tempo reale sfruttare le migliori pratiche del processo di sviluppo per lo sviluppo di applicazioni in uno stile model view controller (mvc) o qualsiasi altra architettura tu preferisca migliora il tuo ruolo come sviluppatore backend gestendo l'autenticazione sicura degli utenti, i trigger del cloud code e altro ancora affina ulteriormente le tue applicazioni web per soddisfare le esigenze del mondo reale utilizzando le funzionalità flessibili di back4app requisiti un account back4app e un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app registrati gratuitamente se non hai un account un ambiente ruby locale dovresti avere ruby https //www ruby lang org/en/documentation/installation/ installato in genere, si consiglia ruby 2 6 o superiore familiarità con il linguaggio di programmazione ruby conoscenza di base della sintassi ruby, concetti orientati agli oggetti e uso comune dei linguaggi di programmazione bundler (opzionale ma raccomandato) bundler aiuta a gestire le gemme per il tuo framework di applicazione web o progetti di sviluppo documentazione ufficiale di bundler https //bundler io/ assicurati di avere tutti questi requisiti in atto prima di iniziare avere il tuo progetto back4app creato e il tuo ambiente ruby pronto garantirà un'esperienza di tutorial fluida passo 1 – creare un nuovo progetto su back4app e connettersi perché questo passo è importante un nuovo progetto back4app è la base per il tuo sviluppo dell'applicazione ospita il tuo database, gestisce l'autenticazione degli utenti e fornisce l'ambiente per eseguire cloud code crea un nuovo progetto accedi a back4app clicca su nuova app nel tuo dashboard di back4app dai un nome alla tua app (ad esempio, “ruby backend tutorial”) installa parse sdk e connettiti a back4app il parse sdk per ruby ti aiuta a interagire con il backend di back4app puoi installarlo tramite gem passo 2 – configurazione del database 1 creazione di un modello dati in back4app, una classe è come una tabella di database ad esempio, puoi creare una classe “todo” per memorizzare i compiti puoi creare classi al volo da ruby o definirle nel dashboard per un controllo più dettagliato 2 creazione di un modello dati utilizzando l'agente ai apri l'agente ai nel tuo dashboard dell'app descrivi il tuo modello dati in linguaggio semplice (ad esempio, “un'app todo con campi titolo e iscompleted”) lascia che l'agente ai crei automaticamente il tuo schema 3 lettura e scrittura di dati utilizzando ruby (parse sdk) di seguito è riportato un semplice esempio di creazione di un nuovo record in una classe “todo” utilizzando il ruby sdk require relative 'parse config' \# create a todo object todo = parse object new("todo") todo\["title"] = "buy groceries" todo\["iscompleted"] = false saved todo = todo save puts "todo saved with objectid #{saved todo\['objectid']}" \# query todos query = parse query new("todo") results = query get puts "fetched #{results size} todos " results each do |t| puts "title #{t\['title']}, completed #{t\['iscompleted']}" end 4 lettura e scrittura di dati utilizzando rest api puoi anche creare e recuperare record utilizzando l'interfaccia rest curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 lettura e scrittura dei dati utilizzando l'api graphql back4app offre un endpoint graphql per applicazioni web mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 lavorare con le query live (opzionale) abilita live queries nel dashboard di back4app (impostazioni del server) e iscriviti dal tuo script ruby se il tuo ambiente supporta le connessioni websocket puoi anche usarle per aggiornamenti in tempo reale in un framework di applicazioni web che supporta la concorrenza passo 3 – applicare la sicurezza con acl e clp 1 panoramica le acl (liste di controllo degli accessi) e le clp (permessi a livello di classe) proteggono i tuoi dati in modi orientati agli oggetti le acl ti permettono di decidere chi può leggere o scrivere ciascun record le clp ti permettono di gestire i permessi per un'intera classe 2 impostare i permessi a livello di classe (clp) e acl vai alla database sezione della tua app e seleziona la tua classe, come “todo ” configura le clp della tua classe sotto “sicurezza” o “permessi a livello di classe ” per impostare le acl su un record owner = parse user current todo = parse object new("todo") acl = parse acl new(owner) acl public read = false acl public write = false todo acl = acl todo\["title"] = "private task" todo save questo assicura che solo il proprietario possa leggere/scrivere quel particolare todo passo 4 – scrivere funzioni di cloud code 1 perché cloud code cloud code aiuta a incorporare la logica aziendale e le convalide direttamente nel server è ideale per garantire l'integrità dei dati e per eseguire compiti non esposti ai client 2 funzione di esempio nel file main js (o simile) del tuo progetto su back4app, puoi definire una funzione cloud parse cloud define('calculatetextlength', (request) => { const { text } = request params; if (!text) { throw 'no text provided'; } return { length text length }; }); nota anche se la nostra applicazione principale utilizza ruby, il cloud code in parse è basato su javascript questo è il modo in cui incorpori la logica lato server su back4app 3 distribuzione back4app cli back4app dashboard copia/incolla la tua funzione in cloud code > funzioni e clicca su distribuisci 4 moduli npm puoi installare moduli npm (ad esempio, axios) per il tuo ambiente cloud code ad esempio npm install axios nel tuo main js , richiedilo e fai chiamate api esterne secondo necessità passo 5 – configurazione dell'autenticazione 1 impostazioni della dashboard abilita l'autenticazione degli utenti nelle impostazioni dell'app back4app utilizza parse user per la gestione degli utenti 2 registrazione / accesso con ruby require relative 'parse config' \# signing up a user user = parse user new({ username "alice", password "secret123", email "alice\@example com" }) begin user sign up puts "user signed up successfully" rescue => e puts "error #{e message}" end \# logging in a user logged in user = parse user login("alice", "secret123") puts "logged in as #{logged in user username}" 3 accesso sociale per integrare accessi sociali (facebook, google, apple), consulta la documentazione accesso sociale https //www back4app com/docs/platform/sign in with apple i dettagli di implementazione variano per ciascun fornitore passo 6 – gestione dello storage dei file 1 configurazione dello storage dei file back4app gestisce il caricamento dei file tramite l'oggetto parse file in ruby file = parse file new("image png", file read("/path/to/image png")) saved file = file save puts "file saved at #{saved file url}" \# attach file to an object photo = parse object new("photo") photo\["imagefile"] = saved file photo save puts "photo object created with file reference " 2 esempio gli utenti possono caricare immagini, documenti o altri file recupera l'url per visualizzarlo nel tuo frontend o in altri servizi 3 considerazioni sulla sicurezza configura la tua app per limitare i caricamenti di file agli utenti autenticati, se necessario passo 7 – verifica email e ripristino password 1 perché è importante la verifica dell'email garantisce indirizzi email validi per i nuovi account il ripristino della password consente ai tuoi utenti di recuperare i loro account in modo sicuro 2 configurazione del dashboard di back4app abilita verifica email imposta modelli personalizzati per la verifica e il ripristino della password 3 esempio di codice da ruby, puoi richiedere un ripristino della password curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset questo invia un link per il ripristino della password all'email dell'utente passo 8 – pianificazione dei compiti con cloud jobs 1 cosa fanno i cloud jobs i lavori nel cloud eseguono compiti periodici come la pulizia dei dati obsoleti o l'invio di email di riepilogo 2 esempio di lavoro parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); programma sotto impostazioni app > impostazioni server > lavori in background nel tuo dashboard di back4app passo 9 – integrazione dei webhook 1 definizione i webhook ti permettono di inviare richieste http a servizi esterni ogni volta che si verificano determinati eventi in back4app questo è ottimo per collegarsi a servizi di terze parti o per attivare compiti in altri linguaggi di programmazione 2 configurazione vai al dashboard di back4app della tua app > altro > webhooks , e aggiungi un nuovo webhook con l'url del tuo servizio esterno 3 esempio invia dati a stripe o slack ogni volta che viene creato un nuovo “todo” in alternativa, puoi definire trigger nel cloud code e fare richieste http all'interno di quei trigger passo 10 – esplorare il pannello di amministrazione di back4app 1 dove trovarlo nella dashboard della tua app, fai clic su altro > app admin , quindi abilitalo 2 caratteristiche interfaccia grafica per la gestione dei dati senza codice strumenti per analizzare i log, pianificare lavori in background e altro controllo degli accessi basato sui ruoli, che ti consente di fornire agli utenti non tecnici un modo sicuro per gestire i contenuti conclusione hai costruito un backend sicuro e scalabile per la tua app ruby su back4app, utilizzando il linguaggio di programmazione ruby per connetterti con l'api parse il tuo processo di sviluppo ora include un database con funzionalità di sicurezza avanzate (acl, clp) aggiornamenti dei dati in tempo reale tramite query live cloud code trigger per logica aziendale personalizzata autenticazione degli utenti e gestione dei file attività pianificate con cloud jobs e webhook per servizi esterni un pannello di amministrazione facile da usare per la gestione dei dati con questa base, puoi estendere le tue applicazioni web o altri progetti in linguaggi di programmazione per soddisfare i requisiti del mondo reale che tu sia un sviluppatore backend esperto o stia appena iniziando con ruby, back4app offre una piattaforma orientata agli oggetti e facile da usare per uno sviluppo rapido sentiti libero di integrare api o funzionalità aggiuntive e di esplorare ulteriori personalizzazioni per allinearti ai modelli di architettura model view controller (mvc) o ad altri stili architettonici prossimi passi affina il tuo ambiente di produzione aggiungendo caching avanzato, accesso basato su ruoli o ottimizzazioni delle prestazioni aggiungi relazioni più complesse tra le classi di dati per alimentare casi d'uso reali esplora la documentazione ufficiale di back4app per sicurezza, approfondimenti sulle prestazioni e analisi sperimenta con altri framework web open source per espandere le funzionalità della tua applicazione divertiti a costruire applicazioni web più robuste e ricche di funzionalità con ruby e back4app!